Выполненный ниже команд снова и проверки...
sudo /etc/init.d/apache2 stop
sudo apt-get remove --purge apache2 php5
sudo apt-get remove --purge libapache2-mod-php5
sudo apt-get install php5 apache2 libapache2-mod-php5
sudo /etc/init.d/apache2 start
sudo a2enmod php5
sudo /etc/init.d/apache2 force-reload
Можно использовать at
управляйте из своего сценария (или обертка). Дайте ему время для выполнения следующего повторения.
echo '/dir/scriptname' | at 'now + 1443 minutes'
Помещенный, что строка, почти возможная к началу сценария уменьшить дрейф.
Необходимо использовать at
вместо cron
, это позволит Вам выполнять задачу точно однажды. Это могло затем перенести себя.
Ну, я хотел бы предложить некоторое улучшение Вашего собственного решения - если Вы будете придерживаться его. Это, однако, все еще потребует для запущения скрипта каждую минуту через cron
:
Вместо того, чтобы управлять любой установкой или отследить, когда сценарий работал в прошлый раз, Вы могли достигнуть той же цели с меткой времени UNIX:
День имеет 60*60*24 = 86400
секунды. Если Вы добавляете 3*60 = 480
от Ваших требований Вы имеете 86880
секунды - и это - точно интервал, который Вы хотите, чтобы Ваш сценарий выполнил. В сценарии можно теперь проверить, равняется ли текущий % времени UNIX (по модулю) это число секунд нулю и аварийному прекращению работы иначе.
Если у Вас должен быть явный первый показ, как 5-го июня 2012, 4:00, можно вычесть связанную метку времени (1338861600
) с местного времени сначала, проверьте, что это не меньше, чем нуль, и возобновите различие...
Конечно, Вы могли также позволить сценарию изменить свой собственный crontab
запись, но это является опасным и также довольно неловким.
Inside the script you can now check whether the current UNIX time % (modulo) this number of seconds equals zero, and abort otherwise.
–
04.06.2012, 08:00
at
команда как Dennis сделала
–
04.06.2012, 08:16
at
вероятно, верный выбор здесь..
– mjhennig
04.06.2012, 13:27
UnixTime % 86880 < 30
)'.
– João Portela
04.06.2012, 13:37
Можно изменить сценарий для проверки некоторого файла флага со временем для выполнения сначала. Если соответствия времени ко времени начала, то Ваш сценарий продолжается, иначе он заканчивается выходом 0. И можно запустить его в кроне даже каждую минуту (или однажды в 3 минуты, кажется, что это может быть достаточно для случая). Также Вам нужен Ваш сценарий для изменения времени следующего запуска в файле флага. Тот достаточно сейф и Вы не пропустите времени начала даже в случае случайной перезагрузки.
'now + 24 hours + 3 minutes'
? – 04.06.2012, 07:54at
вакансии. Это не является подходящим для вопроса, но это мимоходом связано. – Paused until further notice. 04.06.2012, 08:32at
вакансии. Это не является подходящим для вопроса, но это мимоходом связано. – Paused until further notice. 04.06.2012, 08:32