我在VPS上创建了一个'sh'脚本,它使文件系统和SQL的副本保存到我将要推送到备份介质的相同文件夹中。我知道我的脚本正在为此工作,因为当我以root身份登录SSH并手动运行命令时,它会创建一个zip文件和SQL备份,但我创建的用于执行此脚本的CRONjob不起作用。我已经创建了下面的cron作业在“/ etc/crontab中”:在VPS上运行CRON作业时遇到问题
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd/&& run-parts --report /etc/cron.hourly
4 6 * * * root test -x /usr/sbin/anacron || (cd/&& run- parts --report /etc/cron.daily)
20 1 * * 7 root test -x /usr/sbin/anacron || (cd/&& run-parts --report /etc/cron.weekly)
51 5 1 * * root test -x /usr/sbin/anacron || (cd/&& run-parts --report /etc/cron.monthly)
* * * * * root /home/backup/test.sh
第五项是我创建测试之一。路径是正确的,我使用了前面指示的绝对路径。我写了一个名为test/sh的简单脚本,它将一些文本输出到一个文件(test.txt)来测试CRON作业,但它不起作用。我正在使用命令'tail -f'来监视对文本文件的更改,并且它永远不会被调用。该脚本尽管手动执行时仍然有效。
这里是简单的'test.sh'文件。这在手动调用时正常工作。
#!/bin/bash
echo "Dumping at: $(date)" >> /home/backup/test.txt
我知道可能存在权限问题,但我想如果我以'root'身份执行此操作应该没问题吗?任何人都可以看到我要去哪里吗?
感谢
test.sh包含什么?具体来说,它是如何引用test.txt的? - 它使用绝对路径?请记住,当cron运行脚本时,它将不在您手动运行时所在的目录中。 – moonshadow
您是否检查过crontab标签[info wiki](https://stackoverflow.com/tags/crontab/info)中'Debugging crontab'下列出的所有东西? –
我会将test.sh的内容添加到原始文章中。道歉我忘了这么做 – devoncrazylegs