Как я могу автоматизировать сценарий, который работает? rtcwake, сервисный администратор сети

У меня есть сценарий, я хочу работать на равных интервалах в течение дня (11:05 16:05 и 22:05. Но я не хочу компьютер в целый день, таким образом, я попробовал сценарий от sudo crontab-e предложенный здесь.

0 10 * * * sudo rtcwake -m disk -l -t $(date +%s --date '11:00')

Вещь, она работала, только если я выполнил ее в терминале, но не от cronjob. Я также попробовал sudo/usr/sbin/rtcwake xxxx в cronjob без удачи.

Но вторая проблема появилась, когда компьютер проснулся от ручного rtcwake-вызова, и мой сценарий должны были работать. Системное время было выключено с двумя часами, потому что системное время изменилось. Таким образом, я должен был вставить второй cronjob для устанавливания времени, когда компьютер ожил снова

1 11 * * * sudo hwclock -w

Поскольку Вы видите, что это работает спустя одну минуту после того, как компьютер, как предполагается, просыпается от первого rtcwake-вызова, помещая его для сна во-первых. Я все еще не уверен, работает ли это, потому что я еще не попробовал его. (BIOS имеет 9:00 времени, когда компьютер имеет 11:00 после следа),

Но появилась третья проблема. Когда я выполнил rtcwakeup-вызов и попытался запустить свой скрипт вручную, он не работал, потому что у меня не было интернет-соединения.

Таким образом, я вручную сделал a

sudo service network-manager restart

и попробованный сценарий. Это работало!

Мой вопрос, как я заставляю вещь работать в целом? Сценарий функционировал правильно, когда компьютер был на 24/7, потому что было интернет-соединение и время, отмеченное наряду с системным временем и разовое ОС в синхронизации.

Сценарий работает на компьютере Xubuntu 16 LTS. Возможно, это имеет другую установку, чем другие дистрибутивы.

Если я выполняю sudo hwclock, он говорит, что время является 15:20 точно так же, как часы в углу говорят. Но когда я делаю rtcwake

sudo rtcwake -m disk -l -t $(date +%s --date '16:25')

это отвечает, что компьютер проснется в 18:25. Как может и hwclock и часы xubuntu быть в синхронизации, в то время как таймер в rtcwake выключен на 2 часа? Как я синхронизирую hwclock с rtcwake? (Эта проблема была решена с *sudo hwclock - systohc - localtime),

Что необходимо:

cronjob - запустите мой скрипт равномерно (собирающий данные из Интернета)

cronjob2 - заставьте компьютер заснуть, даже если пользователь или администратор не зарегистрированы

cronjob3 - когда компьютер просыпается, корректируют время так первый сценарий (cronjob) выполнения в то время, когда он предполагался а не два часа спустя

cronjob4 - перезапустите сеть прежде (cronjob) выполнения так, чтобы она имела новое интернет-соединение

0
задан 9 June 2017 в 06:44

1 ответ

Решения состояли в том, чтобы скорректировать команды в кроне

От (без обратной косой черты %s):

sudo rtcwake -m disk -l -t $(date +%s --date '16:25')

К (с обратной косой чертой %s):

sudo rtcwake -m disk -l -t $(date +\%s --date '16:25')

После каждого пробуждения в I также раз синхронизируют задание крона, которые работают спустя приблизительно 3 минуты за следом время. В это время время ОС спрыгнет с отставания двух часов к корректному времени. После этого аппаратные часы могут синхронизироваться с разовым ОС. При синхронизации его к быстрому, это будет синхронизировать назад вовремя и разрушать остальную часть сценариев, которые зависят от корректного времени:

sudo hwclock --systohc --localtime

последний удостоверяется, что часы BIOS и localtime являются тем же. Иначе они будут дрейфовать друг от друга, когда часы внутренней батареи переместятся независимо от процессора, который является в покое, в то время как компьютер спит.

Для проверки время синхронизирует работы, я поместил и корректное время для выполнения синхронизации времени крона и за два часа, до которого интервал мои компьютерные задержки. Это означает, хочу ли я, чтобы синхронизация времени ушла в 18:55, я также поместил в 16:55 так, чтобы это работало, даже если аппаратные часы вне синхронизации с часами ОС

55 16,18 * * * hwclock --systohc --localtime 

, необходимо будет контролировать собственную систему для наблюдения, какие несоответствия происходят. Если это перемещается, просто вставляет больше часов, чтобы сделать синхронизацию. Возможно, даже каждый час. Когда компьютер будет спать, ничто не будет сделано, но в то время как он бодрствует, он будет синхронизировать время каждый час.

0
ответ дан 3 November 2019 в 02:51

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

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