脚本从终端运行但不在 crontab 中

脚本从终端运行但不在 crontab 中

我的问题如下:

copy.sh我在文件夹中创建了一个名为的脚本/var/etc,以便将一些.cfg文件从那里复制到myfiles

#!/bin/bash
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
cp *.cfg /usr/local/myfiles/

当我从终端运行它时,脚本完成了工作,但crontab它不起作用:

*/1 * * * * /bin/sh /var/etc/copy.sh > /dev/null 2>&1 &

crontab 日志很好,因为当我执行以下操作时:

grep CRON /var/log/syslog

我看到的是:

Aug 11 14:01:01 vmixxx25 /USR/SBIN/CRON[14840]: (root) CMD (/bin/sh /var/etc/copy.sh > /dev/null 2>&1 &)

我该如何继续?

答案1

脚本运行,只有一个问题:在脚本中使用绝对路径:

cp /path/to/*.cfg /usr/local/myfiles/

cron不知道您的文件位置.cfg,因此不会复制任何内容。

要改进您的 crontab,只需将您的行替换为下面的行。您不需要为此编写脚本。

*/1 * * * * cp /path/to/*.cfg /usr/local/myfiles >/dev/null 2>&1

警告该命令将每分钟启动一次!

相关内容