我的问题如下:
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
警告该命令将每分钟启动一次!