2016-04-27 77 views
0

我在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'身份执行此操作应该没问题吗?任何人都可以看到我要去哪里吗?

感谢

+1

test.sh包含什么?具体来说,它是如何引用test.txt的? - 它使用绝对路径?请记住,当cron运行脚本时,它将不在您手动运行时所在的目录中。 – moonshadow

+0

您是否检查过crontab标签[info wiki](https://stackoverflow.com/tags/crontab/info)中'Debugging crontab'下列出的所有东西? –

+0

我会将test.sh的内容添加到原始文章中。道歉我忘了这么做 – devoncrazylegs

回答

1

所以,搜索的几个小时后,我意识到了一些愚蠢的。我遗漏了crontab文件中的'bash'命令。

我改变了我的行这样的:

          • 根庆典/home/backup/test.sh

它现在正在运行。