Intereting Posts
Как получить загрузку процессора по ядру в процентах? Файлы в пакетах RPM как вычесть первое значение из последнего в столбце по строке в оболочке? Как переместить панель задач на другой монитор в Linux Mint? как я могу ссылаться на переменную в оболочке рыбы с отступлением по умолчанию Можно ли приостановить задания, отправленные через qsub? Bash Разделить на файлы построчно Двойная загрузка (Windows после Linux) Порт для вывода / ограничения трафика ebtables Как я могу использовать arptables для ограничения количества исходящих запросов ARP в секунду? Ошибки Apache 70007 и 70014 Создайте .txt-файл с определенным контентом из недействительного файла .json 3GB. Нет сети в slackware Преобразование путей tar-архива без его извлечения Существуют ли широко распространенные файловые системы, которые представляют каталоги со структурами, оптимизированными для быстрого поиска?

Почему этот сценарий оболочки завершается неудачно, поскольку задание cron

В сценарии оболочки у меня есть следующее: когда я запускаю этот скрипт, он работает, но когда я ставил это как задание cron, он не работает (ничего не происходит!). Как так?

скрипт

#!/bin/bash file="/home/nalangi/backup.zip" if [ -f "$file" ] then zip -9 -r backupTEMP.zip wso2am-1.7.1; rm -r backup.zip; mv backupTEMP.zip backup.zip; else zip -9 -r backup.zip wso2am-1.7.1; fi 

вход crontab

22 14 19 10 0 /home/nalangi/script123.sh

ОБНОВИТЬ

Проблема оказалась в том, что разрешения были неправильно установлены в скрипте.

В вашем скрипте cron есть как минимум две ошибки: во-первых, вы должны сделать set -e в начале, чтобы любая ошибка немедленно завершила скрипт. Более того, поскольку вы используете относительные пути, вы должны сделать cd в желаемом рабочем каталоге:

 cd /home/nalangi 

Заметка. В справочной странице cron (8) говорится:

При выполнении команд любой вывод отправляется владельцу crontab (или пользователю, указанному в переменной среды MAILTO в crontab, если таковая существует).

Итак, если возникла ошибка, вы должны получить письмо с сообщением об ошибке.

Я бы сделал это более как это:

 #!/usr/bin/python import os, shutil, subprocess filename = "backup.zip" home = "/home/nalangi" tempfile = "backupTEMP.zip" if os.path.exists(os.path.join(home, filename)): subprocess.call(["zip", "-9", "-r", tempfile, "wso2am-1.7.1"]) os.remove(os.path.join(home, filename) shutil.move(os.path.join(home, tempfile), os.path.join(home, filename)) else: subprocess.call(["zip", "-9", "-r", filename, "wso2am-1.7.1"])