您好,当我使用 cronjob 提交 shell 脚本时,遇到了以下问题。
我已附上备份帮助命令。
* * * * * 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
编辑你的 crontab。在那里添加作业规范,保存并退出编辑器。
您的工作规范,
* * * * * ankush /home/ankush/test_script.sh
看起来像一个系统 crontab 作业。也就是说,它有一个额外的第六个字段,即用户名(请参阅 crontab 手册,man 5 crontab
)。你自己的私人 crontab 不应该有这个。
我相信这就是你的 crontab 中应该有的内容:
* * * * * /home/ankush/test_script.sh
/home/ankush/test_script.sh
这将每分钟调用一次脚本。这项工作的任何输出或错误都应该通过电子邮件发送给您。
您收到的神秘错误消息来自尝试* * *
在 shell 中执行命令(等)。它与 cron 和你的脚本完全无关。 shell 只是将 扩展*
到当前目录中的所有文件,并尝试将其作为命令运行。显然,第一个*
扩展为backup codebak
并且恰好是backup
某个不理解含义的命令的名称codebak
。
答案2
你做了很多常见的计划任务错误。他们中有一些:
- crontab 文件中的命令语法错误
- 脚本文件的路径错误
- 您的脚本文件没有执行权限
- 在您的配置文件中使用未声明的变量
始终检查命令的语法、查看 cron 日志、检查文件和目录的权限。