Как автоматически перезагрузиться в определенный час и почтой это произошло? (проблема часового пояса)

263
Sasha Grievus

Погуглил, попробовал и сделал несколько попыток сделать это на Ubuntu 12.04, но это работает странным образом ... Это мои записи в crontab, которые

  1. запускать определенный скрипт, управляющий чем-то (не релевантным) каждые 4 минуты
  2. в 3 часа ночи перезагрузите систему
  3. в 3 часа ночи пришлю письмо с темой 'Система перезагружена'

    * / 4 * * * * /root/script.sh >> /root/script.log

    0 3 * * * перезагрузка

    0 3 * * * echo "Система перезагрузилась!" | mail -s "Система была перезагружена" email@gmal.com

Теперь, безусловно, ошибка помещать действие отправки почты после действия перезагрузки в одно и то же время (что-то сделать сложно при перезагрузке), и я планирую переместить его на «10 3», просто чтобы быть уверенным.

Игнорируя это, вчера я установил действия crontab, а сегодня пришло письмо с временем прибытия 9 утра . Я немного озадачен. Синтаксис кажется правильным ... Я бы понял, если почта не пришла вообще, но почему в 9 утра вместо 3 утра?

(Я не могу сделать много тестов для машины, которая является производственной)

РЕДАКТИРОВАТЬ: Отправить исходные данные по электронной почте

 Delivered-To: myemail@gmal.com Received: by 10.12.169.80 with SMTP id z16csp372030qva; Thu, 23 Feb 2017 00:00:11 -0800 (PST) X-Received: by 10.223.148.230 with SMTP id 93mr27510733wrr.13.1487836811929; Thu, 23 Feb 2017 00:00:11 -0800 (PST) Return-Path: <root@mysite.it> Received: from mysite.it ([188.226.132.38]) by mx.google.com with ESMTP id q19si3557509wra.220.2017.02.23.00.00.05 for <myemail@gmal.com>; Thu, 23 Feb 2017 00:00:05 -0800 (PST) Received-SPF: temperror (google.com: error in processing during lookup of root@mysite.it: DNS error) client-ip=188.226.132.38; Authentication-Results: mx.google.com; spf=temperror (google.com: error in processing during lookup of root@mysite.it: DNS error) smtp.mailfrom=root@mysite.it  Received: by mysite.it (Postfix, from userid 0) id 3968F4071F; Thu, 23 Feb 2017 03:00:02 -0500 (EST)  Subject: System was rebooted To: <myemail@gmal.com>  X-Mailer: mail (GNU Mailutils 2.99.98)  Message-Id: <20170223080002.3968F4071F@mysite.it>  Date: Thu, 23 Feb 2017 03:00:02 -0500 (EST) From: root <root@mysite.it>  **Originale Message  ID message <20170223080002.3968F4071F@mysite.it> Created: 23 feb 2017 09:00 (recapitato dopo 6 secondi) From: root <root@mysite.it>Tramite mail (GNU Mailutils 2.99.98) To: myemail@gmal.com Oggetto: System was rebooted** 

Изучение электронной почты две разные даты показывают ...

0
Вы проверили заголовки сообщения `Received:`? Не могли бы вы опубликовать их? AnFi 7 лет назад 1
сделано mysite.it для моего сайта и myemail@gmal.com для моей электронной почты Sasha Grievus 7 лет назад 0
Вы должны взглянуть на псевдоним `cron`` @ reboot`, который запускает работу после перезагрузки. charlesbridge 7 лет назад 1
Я предполагаю, что расхождение во времени связано с тем, что ваш часовой пояс не установлен должным образом. В каком часовом поясе вы находитесь, что говорит местное время и что выдает «date» и «date -u»? Darren 7 лет назад 1
хорошая точка зрения! На самом деле «дата» вернул «Чт 23 февраля 09:20:58 EST 2017» в 15:20 по местному времени! Я изменю это. Кто-то хочет скомпилировать правильный ответ (было бы замечательно, если бы метод для выравнивания часового пояса был и вещь @reboot тоже) только для проходящих мимо людей Sasha Grievus 7 лет назад 0

1 ответ на вопрос

1
Darren

Вот оно:

Ваш часовой пояс и / или местное время неверны, поэтому любые задания не работают должным образом.

Чтобы установить время и часовой пояс, используйте апплет «Настройки времени и даты» в настройках Ubuntu или в терминале:

sudo timedatectl set-timezone <timezone> 

или же

sudo dpkg-reconfigure tzdata 

Чтобы установить время в терминале, используйте:

sudo date -s "yyyy-mm-dd hh:mm:ss" 

Хотя я бы настоятельно рекомендовал настроить NTP для автоматического поддержания текущего времени.

Чтобы ответить на другую часть вашего вопроса, вы можете поместить задачу в файл crontab и заменить время на @reboot. Это запустит задачу при запуске системы, чтобы вы могли запустить свой почтовый скрипт таким образом.

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