Сценарий оболочки работает на терминале, а не когда он запущен cronjob

Как сказал Ипор Сирсер, lckdo , вероятно, правильный выбор.

В сценарии bash может быть так: $ BASHPID - это PID запущенного сценария. Вы можете сохранить его в файл и проверить его существование (или, еще лучше, проверить, активен ли тот, который содержит PID).

#!/usr/bin/env bash

PIDFILE="/foo/bar/script.pid"

# script running?
[[ -s $PIDFILE ]] && exit

# no, create pidfile
echo $BASHPID > $PIDFILE


# .. do some stuff

# delete pidfile
rm $PIDFILE
1
12.05.2019, 23:50
2 ответа

У вас есть разные настройки пути при запуске cron, поэтому всегда используйте абсолютные пути в сценариях или службах cron.

2
27.01.2020, 23:34

Я нашел решение:

end_YYYYMMDDHH = $ (date --date = "$ {start_YYYY} - $ {start_MM} - $ {start_DD} $ {start_HH}: $ {start_II}: $ {start_SS} UTC + $ {flen} часов "-u" +% Y% m% d% H ")

он работает правильно, но по какой-то причине, если вы переместите это part: -u "+% Y% m% d% H" к началу команды, которая выдает эту ошибку!

очень странно то, что одна и та же команда работает на другой машине!

0
27.01.2020, 23:34

Теги

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