Сценарий, работающий от терминала, но не в 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 прекрасен потому что, когда я делаю 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 &)

Как я должен продолжить двигаться?

3
задан 11 August 2015 в 23:14

1 ответ

Выполнения сценария, существует всего одна проблема: используйте полный путь в своем сценарии:

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

cron ничего не знает о местоположении Вашего .cfg файлы и поэтому ничего не копирует.

Для улучшения crontab просто замените строку строкой ниже. Вам не нужен сценарий для этого.

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

Предупреждение команда будет запускаться каждую минуту!

1
ответ дан 1 December 2019 в 17:36

Другие вопросы по тегам:

Похожие вопросы: