Моя проблема следующая:
Я сделал сценарий названным 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 прекрасен потому что, когда я делаю a:
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 &)
Как я должен продолжить двигаться?
Выполнения сценария, существует всего одна проблема: используйте полный путь в своем сценарии:
cp /path/to/*.cfg /usr/local/myfiles/
cron
ничего не знает о местоположении Вашего .cfg
файлы и поэтому ничего не копирует.
Для улучшения crontab просто замените строку строкой ниже. Вам не нужен сценарий для этого.
*/1 * * * * cp /path/to/*.cfg /usr/local/myfiles >/dev/null 2>&1
Предупреждение команда будет запускаться каждую минуту!