Сценарий работает вручную, но не в cron – не вычисляет var?

Я создаю сценарий резервного копирования GFFS для школьного задания, но я столкнулся с некоторыми проблемами. Он работает следующим образом:

/etc/backup/backup.sh PERIOD NUMBER 

Я добавил следующие строки в cron:

 # mh dom mon dow command # Backup for fileserver: #daily: 5 times/week 0 23 * * 1-5 /etc/backup/backup.sh daily $(date -d "-1 day" +%w) #weekly: 5 times/month 10 23 * * 7 /etc/backup/backup.sh weekly $((($(date +%-d)-1)/7+1)) #monthly: 12 times/year 20 23 1 * * /etc/backup/backup.sh monthly $(date -d "-1 day" +%m) #yearly: each year 0 3 1 1 * /etc/backup/backup.sh yearly $(date -d "-1 day" +%Y) 

В конце вычислений нужно знать, что предыдущее резервное копирование было отменено. Это работает идеально, когда запускается вручную, но при запуске cron он делает что-то странное. Я говорю о еженедельной резервной записи. расчет должен дать мне номер недели в текущем месяце. я сделал «grep CRON / var / log / syslog» и нашел эту строку:

 Dec 19 14:33:01 BE-SV-04 CRON[5445]: (root) CMD (/etc/backup/backup.sh weekly $((($(date +) 

Кажется, что cron неправильно выполняет вычисления. Любая помощь?

2 Solutions collect form web for “Сценарий работает вручную, но не в cron – не вычисляет var?”

Я думаю, вам нужно избежать «%» – знаков

так это:

 0 23 * * 1-5 /etc/backup/backup.sh daily $(date -d "-1 day" +\%w) 

… должно сработать. Я не знаю, с кем нужно бежать, подумайте + и%, пожалуйста, попробуйте. * Когда я делал это в cron, я использовал синтаксис backgick backgick для выполнения команды, и мне тоже пришлось их escapte: *

 0 1 * * * something >> bla\`date \+\%Y_\%m_\%d\`.log 

Я не уверен, в какую оболочку входит cronjob, но, похоже, он не может разобрать расчет; вам может потребоваться использовать bc .

  • В Gnu Emacs как настроить глобальный ключ для переключения панели меню?
  • Вставка строки в файл только в том случае, если эта строка еще не является частью файла
  • как заставить Expect ждать завершения другого скрипта
  • Назначить имена столбцов diff -y
  • Использование Sed с регулярным выражением
  • Как я могу выполнить скрипт как root, выполнить некоторые команды в нем как конкретный пользователь и только одну команду как root
  • Резервное копирование файлов определенного предела в unix
  • Открытие приложений на другом рабочем столе из командной строки
  • проанализировать действительно простую грамматику разметки со сценарием оболочки
  • Проблема с strongSwan
  • Solaris: PKG - скрипт для проверки всех пакетов, за исключением нескольких
  • Interesting Posts

    вывод соседних строк с номерами строк, в то время как grepping

    Bash globbing: как выражать "что-то – *. Txt кроме * -foobar.txt" как glob?

    Как переименовать файл в … (точка точка)?

    Корреляция / var / log / * timestamps

    Почему тире расширяется \\\\ по-разному до bash?

    Как сделать bash встроенным «read» игнорировать прокомментированные или пустые строки?

    FreeRDP – запуск приложения с аргументом командной строки

    Заставить ssh запрашивать пароль и открытый ключ

    Что хорошего места для изучения UNIX, с которым я могу подключиться? ..

    Как удалить строки, соответствующие foo, но не соответствующие строке?

    Сервер SSSD как централизованная аутентификация

    msmtp Пустые поля TO и FROM. Вся почта заканчивается в Bulk Mail при отправке из CLI или вручную.

    Как разместить запись рабочего стола в списке приложений в диалогах с открытыми диалоги?

    Установка Kali Linux перепуталась с MacBook Pro (без Wi-Fi)

    Почему фоновые задания запускаются моей оболочкой, живущей дольше, чем исходная оболочка и управляющие терминалы?

    Linux и Unix - лучшая ОС в мире.