|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1758852 |
25 |
2015-12
1758852
1 백메가
|
|
[필독] 처음 오시는 분을 위한 안내 (737) |
정은준1 |
2014-05 |
5232148 |
0 |
2014-05
5232148
1 정은준1
|
99837 |
dl360 Gen9 부팅관련 질문있습니다. (9) |
DellEMC |
2021-07 |
5427 |
0 |
2021-07
5427
1 DellEMC
|
99836 |
LSI 9721-8i 레이드카드 질문 드립니다. (6) |
가온누리I강… |
2021-07 |
4109 |
0 |
2021-07
4109
1 가온누리I강…
|
99835 |
Dell T7920 베에본을 하나 들였는데 이건 어디에 사용하는 것인가요? (4) |
Xecus |
2021-07 |
3182 |
0 |
2021-07
3182
1 Xecus
|
99834 |
IBM 49Y4202 카드는 시스템X 전용인가요? (6) |
Sikieiki |
2021-07 |
2413 |
0 |
2021-07
2413
1 Sikieiki
|
99833 |
소프트웨어 레이드 걸려있는 우분투 포맷해버렸습니다.. (3) |
뭐든팔아요 |
2021-07 |
2288 |
0 |
2021-07
2288
1 뭐든팔아요
|
99832 |
1u 이슬림 랙 부팅시 H/W malfunction! system halted 출력시. (4) |
린킨파크 |
2021-07 |
3706 |
0 |
2021-07
3706
1 린킨파크
|
99831 |
로모스 외장배터리 PEA57 충전문제 질문 (4) |
제라드TN |
2021-07 |
2300 |
0 |
2021-07
2300
1 제라드TN
|
99830 |
자동차 타이어 질문 (12) |
류류류 |
2021-07 |
2873 |
0 |
2021-07
2873
1 류류류
|
99829 |
하드디스크 공진음 잡으려면 어떻게 해야할까요? (12) |
VSPress |
2021-07 |
3612 |
0 |
2021-07
3612
1 VSPress
|
99828 |
i3-3220이 nas용으로 괜찮을까요? (3) |
Setila |
2021-07 |
3396 |
0 |
2021-07
3396
1 Setila
|
99827 |
HP ML350 Gen9 전원 안켜지는 문제 질문드립니다 (14) |
미친감자 |
2021-07 |
5010 |
0 |
2021-07
5010
1 미친감자
|
99826 |
리눅스 - 시간별 쉘 스크립트 짜기.. 도와주세욤.. (14) |
가상화린이 |
2021-07 |
4494 |
0 |
2021-07
4494
1 가상화린이
|
99825 |
아답터 호환 문의입니다 (7) |
조재형3 |
2021-07 |
2119 |
0 |
2021-07
2119
1 조재형3
|
99824 |
이거 옴론 스위치인가요? (8) |
고양시 |
2021-07 |
2843 |
0 |
2021-07
2843
1 고양시
|
99823 |
synology nas rs1219+ 모델 질문드립니다. (3) |
bangCH |
2021-07 |
2428 |
0 |
2021-07
2428
1 bangCH
|
99822 |
eurodk통한 직구시 통관세금 문의 (2) |
NGC |
2021-07 |
2540 |
0 |
2021-07
2540
1 NGC
|
99821 |
리눅스 - crontab 자꾸 실패해요.ㅠㅠ 간단한건데도..... (9) |
가상화린이 |
2021-07 |
4428 |
0 |
2021-07
4428
1 가상화린이
|
99820 |
HP ML350(타워형) gen9 전원케이블 2개 다 꼽아야 하나요? (4) |
미친감자 |
2021-07 |
2475 |
0 |
2021-07
2475
1 미친감자
|
99819 |
IP충돌때문에 골머리를 앓고있습니다. (9) |
레반터스 |
2021-07 |
5462 |
0 |
2021-07
5462
1 레반터스
|
99818 |
오래된 HP서버의 HDD를 SSD로 복제 후 일반 데스크탑에서 사용여부 (6) |
weikath |
2021-07 |
2960 |
0 |
2021-07
2960
1 weikath
|
링크 내용을 참고해보세요.
주기적인 작업 및 user 지정 작업이 설명되어 있네요.
crontab에서는 잘 활용하고 있습니다.
도움 많이 받았어요. (무아님도 답변 넘 감사합니다 ^^)
따로 스크립트를 짜고
crontab에는 스크립트 실행명령어만 날려볼려고 합니다.ㅠㅠ
첫 줄에 어떤 쉘을 쓸건지 지정하고 ( 예. #!/bin/bash )
두번째 줄 부터 명령을 넣으면 됩니다.
파일 내용을 덮어 쓰는 거는 그냥 cp 명령어를 써서 파일을 카피하면 될 거 같고
명령실행 내용을 로그에 추가하려면
명령 >> inc.log
만들어 주고
마지막으로 해당 쉘스크립트 파일이 실행 가능하도록 chmod 명령을 사용하여 실행 파일이라고 지정해주면 됩니다.
각 명령이나 파일위치 등은 경로 잘 확인하시고..
date +%a로 하면 요일이 출력되니 이걸 기반으로 조건문 설정해서 프로그램이 변경되도록 하면 될 것 같습니다.
무슨요일 몇시 몇분에 주기적으로 실행하기
https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%B0%98%EB%B3%B5_%EC%98%88%EC%95%BD%EC%9E%91%EC%97%85_cron,_crond,_crontab#.EC.98.88.EC.8B.9C
그냥 스크립트로 다 짜고, 그거 실행하게만 해주세요
crontab에는 쉘만 실행하게끔 1줄만 넣고요.
제가 하는 생각과 님이 하는 생각이 같은것같은데?
어차피 파일을 생성해버리면 내용물 수정해도 소유권이 바뀌지 않고, 로그에 추가하거나 하는건 권한만 있으면 아무 계정이나 다 똑같으니까요
2. 별로 어려울것 없이 echo로 > 해서 파일 이름 지정하면 끝 (아니면 미리 만들어둔 파일로 덮어쓰기 해도 됩니다)
3. runas같은걸 쓰세요 (로그 실행은 자체 로그 지정 기능이 있다면 로그파일 경로 지정하면 추가되는 경우가 대부분이고, 혹시 덮어쓰기로 작동한다면 임시 경로에 저장후 명령 종료시 파이프라인으로 던져서 추가해야할 파일 끝에 들어가게 하세요)
4. 파이프라인보다는 그냥 cp -f를 추천합니다 (이후 권한등 안 맞으면 수정)
5. 3이랑 동일
그리고 crontab 수동으로 짜면 귀찮으니까 구글링하면 웹으로 쉽게 짜게해주는 페이지 있으니 거기서 짠다음 내용물 그대로 붙이세요
여전히 허접하지만, 20년쯤 리눅스 쓰고 있으니 대충 어떻게든 때울 수 있을정도는 되더군요
크론탭에 시간별로 다 등록하는게 쉬운건가요?
?????
전 스크립트를 짜고
크론탭에는 쉘 실행 명령어 한줄만 넣고싶어서요.
구현 하고자 하는 기능을 Q&A를 이용해야 하는 실력에서는 crontab에 일일이 등록하는게 편합니다.
스크립트 요령이 생기면 스크립트 하나만 등록해도 가능하죠.
구현하고자 하는 기능에 요일이 포함되어 있는데 LOCALE을 고려하거나 LOCALE을 고려하지 않도록 변경해서 짜거나 해야하는 복잡함이 있죠.
애초에 크론탭에서 요일마다 수행할 수 있도록 지원하는데 굳이 스크립트에서 요일 파싱하는것보단 쉽죠.
특히 직접개발할 수준이 안되고 질문을 올리시는걸 고려하면 충분한 지식이 없으면 굳이 무리해서 그걸 할 필욘 없습니다.
무야님이 알려주신 링크 참고만 하더라도 꽤 큰 도움이 될 것 같네요.
크론탭을 굳이 한줄로 할려는 의도는 모르겠습니다만 그렇게 한다고 해서 굳이 장점은 없어서요.
크론탭을 편집하는 과정에서는 여러 줄이여서 보기 불편하다라고 생각할 수 있지만, 역으로 유지보수관점에서는 이게 언제 언제 수행되는지 이해되기 편합니다.
예를 들어 서술한대로 0시에 수행후 0시 5분에 수행하기 위해
startTime=$(date +%s);
#work
endTime=$(date +%s);
totalTime=$(($endTime-$startTime));
sleepTime= 300 - $(totalTime);
sleep $sleepTime;
이런 식으로 처리해주어야 하는데 유지보수 관점에선 좋은 코드는 아닙니다.(애초에 정확하게 5분 대기는 힘들구요. 1초 이내의 오차는 감안하셔야 할 수도 있습니다. 애초에 그게 중요하진 않을 것 같지만요.)
그리고 프로세스가 그때까지 수행중이므로 리소스 해제가 안되므로 좋은 코드는 아닙니다.
crontatab에 1개의 통합 script를 실행했을때, 해당 script는 마지막 명령어 까지 지속적으로 수행되고 있어야 합니다.
(crontab 등록시 분단위 설정 가능하긴 합니다)
예시로 5분을 적으셨는데 상황에 따라 10시간의 간격이 있다면 그만큼을 script 가 돌고 있는겁니다.
서버 리소스도 점유하고... 요일별 시간별 조건문 사용도 복잡?하고.
구현이 필요하시면,
shell script if, 또는 shell script case 로 검색하시면 되겠습니다.
IS_SUNDAY=`date +%u`
IS_HOUR_0=`date +%H`
IS_MIN_5=`date +%M`
if [ "$IS_SUNDAY" = "7" ]
then
echo "IS_SUNDAY : $IS_SUNDAY"
echo "Today is Sunday"
# TODO
if [ "$IS_HOUR_0" = "13" -a "$IS_MIN_5" = "05" ];
then
echo "IS_HOUR_0 : $IS_HOUR_0, IS_MIN_5 : $IS_MIN_5"
echo "--------------"
# TODO
else
echo "IS_HOUR_0 : $IS_HOUR_0, IS_MIN_5 : $IS_MIN_5"
fi
else
echo "IS_SUNDAY : $IS_SUNDAY"
echo "Today is not Sunday"
if [ "$IS_HOUR_0" = "13" -a "$IS_MIN_5" = "05" ]
then
echo "IS_HOUR_0 : $IS_HOUR_0, IS_MIN_5 : $IS_MIN_5"
echo "==============="
# TODO
else
echo "IS_HOUR_0 : $IS_HOUR_0, IS_MIN_5 : $IS_MIN_5"
fi
fi