我有一个测试脚本,我想定期运行。我在/etc/cron.d
名为 的目录中创建了一个文件my_test.cron
。
#ls -l /etc/cron.d/my_test.cron
-rwxr-xr-x 1 root root 81 Sep 24 2020 my_test.cron
#cat /etc/cron.d/my_test.cron
00 02 * * * root /usr/bin/my_dir/test_wrapper.sh > /var/log/clamav.err 2>&1
我可以看到 cron 任务没有被调用。文件中没有可用的日志log.err
。但是,手动执行时脚本工作正常,包装器脚本的权限:->
-rwxr-xr-x 1 root root 1.2K Sep 24 2020 /usr/bin/my_dir/test_wrapper.sh
当我跟踪 Syslog 时,我只能看到关于我的 cron 的任何信息:->
Jul 14 00:02:01 my-test-vm CRON[15891]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
我在这里缺少什么?
答案1
/etc/cron.d
(和目录)中的文件/etc/cron.*
是要执行的,它们不是crontab
文件。
- 目录中的文件
/etc/cron.*
是要执行的,它们不是crontab
文件。 - 中的文件
/etc/cron.d
是 crontab 文件。
替代解决方案可以是:
要么/etc/crontab
编辑
00 02 * * * root /usr/bin/my_dir/test_wrapper.sh > /var/log/clamav.err 2>&1
或以 root 身份,使用crontab -e
添加以下行
00 02 * * * /usr/bin/my_dir/test_wrapper.sh > /var/log/clamav.err 2>&1