안녕하세요. cronjob을 사용하여 쉘 스크립트를 제출할 때 다음과 같은 문제가 발생했습니다.
백업 도움말 명령을 첨부했습니다.
* * * * * ankush /home/ankush/test.sh
backup: Unrecognized operation 'codebak'; type 'backup help' for list
backup help list
backup: Commands are:
adddump add dump schedule
addhost add host to config
addvolentry add a new volume entry
addvolset create a new volume set
apropos search by help text
dbverify check ubik database integrity
deldump delete dump schedule
deletedump delete dumps from the database
delhost delete host to config
delvolentry delete a volume set sub-entry
delvolset delete a volume set
diskrestore restore partition
dump start dump
dumpinfo provide information about a dump in the database
help get help on commands
interactive enter interactive mode
jobs list running jobs
kill kill running job
labeltape label a tape
listdumps list dump schedules
listhosts list config hosts
listvolsets list volume sets
quit leave the program
readlabel read the label on tape
restoredb restore backup database
savedb save backup database
scantape dump information recovery from tape
setexp set/clear dump expiration dates
status get tape coordinator status
version show version
volinfo query the backup database
volrestore restore volume
volsetrestore restore a set of volumes
내 콘솔에서 명령 흐름을 찾아보세요.
ankush@hn0-ank-d:~$ more test_script.sh
echo "test"
ankush@hn0-ank-d:~$ * * * * * ankush /home/ankush/test_script.sh
backup: Unrecognized operation 'codebak'; type 'backup help' for list
ankush@hn0-ank-d:~$
코드를 처음 실행하면 sudo apt install openafs-client를 설치하라는 메시지가 표시됩니다. 직접 가서 설치해 봤습니다.
이유는 무엇입니까?
답변1
명령줄에서 직접 crontab 작업 사양을 입력하려는 것 같습니다. 그건 작동하지 않습니다.
crontab 작업을 추가하려면 다음을 사용하십시오.
$ crontab -e
크론탭을 편집하세요. 거기에 작업 사양을 추가하고 저장한 후 편집기를 종료하세요.
귀하의 작업 사양,
* * * * * ankush /home/ankush/test_script.sh
시스템 crontab 작업처럼 보입니다. 즉, 추가 여섯 번째 필드인 사용자 이름이 있습니다(crontab 매뉴얼 참조 man 5 crontab
). 여러분의 개인 크론탭에는 이것이 없어야 합니다.
나는 이것이 당신의 crontab에 있어야 한다고 믿습니다:
* * * * * /home/ankush/test_script.sh
/home/ankush/test_script.sh
그러면 1분마다 스크립트가 호출됩니다. 이 작업의 결과나 오류는 귀하에게 이메일로 전송되어야 합니다.
당신이 받고 있는 비밀스러운 오류 메시지는 * * *
쉘에서 명령 등을 실행하려고 할 때 발생합니다. cron 및 스크립트와는 전혀 관련이 없습니다. 쉘은 단순히 *
현재 디렉토리의 모든 파일로 확장되어 명령으로 실행을 시도합니다. 분명히 첫 번째 이름은 의미가 이해되지 않는 일부 명령의 이름 *
으로 확장 backup codebak
되어 발생합니다 .backup
codebak
답변2
당신은 일반적인 일을 많이예약된 작업 오류. 그 중 일부는 다음과 같습니다:
- crontab 파일의 명령 구문 오류
- 스크립트 파일 경로가 잘못되었습니다.
- 스크립트 파일에 실행 권한이 없습니다.
- 구성 파일에서 선언되지 않은 변수 사용
항상 명령 구문을 확인하고 cron 로그를 확인하고 파일 및 디렉터리에 대한 권한을 확인하십시오.