Linux перезагрузка по расписанию

Обновлено: 04.07.2024

На сервере установлен CentOS release 6.7 (Final). С Linux я сталкиваюсь впервые, познаний ноль. Все на уровне "гуголь" и логики. Поэтому, прошу совета:

Задача банальна: необходима перезагрузка сервера ежедневно в 07:00.

Сделано:
1. Создал скрипт по пути


2. Сделал shoutdown.sh исполняемым
3. В shoutdown.sh прописал скрипт

Что пробовал:
1. Не смог разобраться, где посмотреть лог работы сервера, поставил ip на пинг на ночь. Пакетов потерянных не было, следовательно сервер не перезагружался.
2. Вручную запустил скрипт командой


Сервер ушел в ребут. Т.е. скрипт рабочий. Значит проблема в cron.
3. Нашел лог cron. В нем напоминание о скрипте в 07:00:01 имеется

4. Команда crontab -l показывает мою команду.
5. При вводе crontab -e вижу это:

Что я делаю не так?
  • Вопрос задан более трёх лет назад
  • 5022 просмотра

Оценить 4 комментария

p1r4te

Если cron не работает, смотри у него в логе, почему он не работает.

Rsa97

Для правильного вопроса надо знать половину ответа

Rsa97

Rsa97

fuzzZy23: И ещё надо скрипту поставить разрешение на выполнение. chmod 744 /etc/scritpts/shoutdown.sh Rsa97: а по поводу:
chmod 744 /etc/scritpts/shoutdown.sh
я уже сделал файл исполнимым
-rwxr-xr-x

Rsa97

Rsa97: Ну и ещё, команду /sbin/shutdown -r now можно крону прописать и без промежуточных скриптов. Rsa97: ну и я, великий англичанин, писал путь /etc/scripts/shOutdown.sh
Думаю, в этом тоже могла быть причина :DDD

Rsa97

fuzzZy23: Да. Только путь может быть разным в зависимости от сборки линукса. Проверить можно командой which shutdown , она покажет точный путь.

p1r4te

Добрый день. У вас опечатка в скрипте (shOutdown). Попробуйте:

Добрый день. Да, я только что заметил эту опечатку, поправил.

Так же, в скрипте, вместо
shutdown -r now
прописал как у вас
shutdown -r 0

Все операции, который вы прописали, мне понятны.

Есть только 2 вопроса:
1. принципиально важно класть файл скрипта к юзеру в /home/username/ ?
2. когда я пытаюсь редактировать cron командой "crontab -e" - у меня перестает что-либо печататься в консоли. В комментарии скриншот приложить нельзя. Добавил в основную тему сверху

Операционная система Linux позволяет планировать запуск, завершение или переход компьютера в режим сна в нужное вам время. Например, вы можете запланировать запуск компьютера утром и автоматическое выключение когда ложитесь спать.

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

Планирование включения в Linux

В Linux для завершения работы или перехода в режим сна и планирования запуска, используется утилита rtcwake. Это встроенный в ядро инструмент, поэтому она уже есть во всех дистрибутивах и устанавливать ничего не придется. Синтаксис команды такой:

$ sudo rtcwake –m режим –s время

$ sudo rtcwake –m режим –t время

После выполнения команды компьютер сразу выключится. Параметр -s указывает количество секунд до запуска компьютера. Опция -m устанавливает режим выключения. Дело в том что компьютер выключается не полностью, он переходит в сон, при котором питание подается только на несколько самых важных компонентов. Эти компоненты и определяет режим, указанный в этом параметре. Доступные режимы:

  • standby (S1) – режим с минимальным энергосбережением, компьютер очень быстро засыпает и так же быстро восстанавливается. Этот режим используется по умолчанию;
  • mem – (S3) – все компоненты системы отключаются кроме памяти;
  • disk(S4) – Все содержимое памяти записывается на диск;
  • off (S5) – Аналогично вызову команды shutdown;
  • on – без отключения, используется для отладки.

А теперь давайте рассмотрим основные опции команды rtcwake Linux:

  • -a - определить какое время использовать локальное или UTC на основе файла /etc/adjtime;
  • --date - указать дату включения компьютера, доступны такие варианты: YYYY-MM-DD hh:mm:ss, YYYY-MM-DD (время будет установлено в 00:00), hh:mm:ss (дата будет установлена на сегодня), tomorrow (завтра в 00:00);
  • -l, --local - использовать локальное время, а не UTC;
  • --list-modes - вывести доступные режимы планирования включения;
  • -m, --mode - выбрать режим планирования;
  • -n, --dry-run - тестовый запуск;
  • -t - время следующего запуска в формате Unix, в секундах, прошедших с 01-01-1970;
  • -u, --utc - использовать UTC время вместо локального;
  • -v - максимально подробный вывод.

Например, следующая команда переводит компьютер в режим сна и планирует включение через 3 минуты:

rtcwake -m mem -s 180

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

Например, давайте включим компьютер завтра в 13.00, допустим сегодня 10 сентября 2016. Сначала преобразуем данные:

date +%s -d "2016-09-11 13:00"

Выключаем компьютер и планируем запуск по расписанию:

rtcwake -m mem -t 1473541200

Чтобы запланировать выключение Linux по расписанию или переход в режим сна будем использовать cron. Просто запланируйте выполнение команды rtcwake через crontab в нужное время для выключения компьютера и планирования последующего включения. Например, выполняем выключение компьютера Linux вечером и выполнить запуск по расписанию linux с утра:

0 21 * * * /usr/bin/rtcwake -m mem -s 28800

Если вам не нужно включать компьютер, а только выключить, можете вместо предыдущей команды использовать shutdown:

0 21 * * * /usr/bin/shutdown -h now

Вот и все. Подробнее о том, как настраивается расписание задач в cron смотрите здесь.

Выводы

Теперь вы знаете как запланировать запуск, выключение или переход в режим сна в Linux. Это не сложно и в некоторых ситуациях может очень помочь. Если у вас остались вопросы, спрашивайте в комментариях!

Подскажите пожалуйста, как с помощью Crontab делать рестарт сервера (Cent OS), например, каждые сутки?

Для проверки я пытался перезапускать сервер в определенное время, например в 18 часов 10 минут.
Пытался так:

Однако рестарт не осуществляется.

Подскажите пожалуйста, в чём может быть проблема?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь


Среднеквадратическое отклонение за каждые сутки
Здравствуйте! Помогите, пожалуйста, создать функцию. Имеется массив записанных данных (долгота).

Изменение даты каждые сутки
Интересует вопрос.Возможно ли сделать так,чтобы текст на сайте менялся каждые сутки,а точнее даты.

Обновление базы каждые сутки
Подскажите как сделать чтоб при клике на ссылку в базу заносилось текущее время в одно поле и.

Каждые сутки отображать в TextBox разный текст
Есть windows Form app. Суть его в том, что каждый день в текстбоксе появляется новый вопрос(из.

такой вариант работает (главное, путь должен быть полный, либо переменная PATH вверху установлена)

спасибо за ответ accept, однако я до конца что-то не понял.

объясните пожалуйста поподробней, что здесь имеется в виду?

(главное, путь должен быть полный, либо переменная PATH вверху установлена) объясните пожалуйста поподробней, что здесь имеется в виду?

если у тебя команда с неполным путём - shutdown вместо /sbin/shutdown, - то вверху должна быть определена переменная PATH, включающая путь, по которому находится shutdown - /sbin

1) под обычным пользователем запусти

2) если перезагрузка произошла, под этим же пользователем
2.1) удостоверься в пути
:wq
2.4) жди выполнения
2.5) если ничего не произошло, выполни

спасибо за очередной ответ ))

Может быть я что-то не так понял.

Вообщем, под обычным пользователем отказался перезагружаться "требует root"

подождал несколько минут и всё равно ничего не происходит.

показало вот такое:

по идее такая запись не катит если воспользоваться подождал несколько минут и всё равно ничего не происходит

это ты во сколько делал ?
нужно посмотреть текущие минуты на часах и сделать на минуту вперёд

показало, что вообще не выполнилось, то есть, скорее всего, ты не дождался Тема не свежая, но задался целью сделать рестарт сервера раз в неделю на VDS, зашел просто в "Планировщик" в ISPManager 5, ввёл Выбрал "еженедельно", в субботу в 4:00, проверил - работает.
У меня CentOS 6

Строка таблицы mysql меняется каждые сутки
Знающие, опытные и любители))) Как силами Mysql запросов организовать на сайте изменение в базе.

Кнопка, которая будет делать рестарт MS SQL Serverа.
Незнаю, в какую точно тему вопрос. Мне нужно сделать на вэб-странице кнопочку, которая будет.

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


Рассчитать среднее значение пробега автомобиля по всему предприятию за каждые сутки месяца
помогите пожалуйста с задачей " На основе сведений о ежедневном пробеге автомобилей транспортного.


Вычисление средней температуры за сутки, если температура измеряется каждые два часа
Заранее извиняюсь, что пишу сюда. Это от беспомощности, наверное) Вообщем завтра мне нужно сдать.

Доброго времени суток! Подскажите как можно организовать ежедневную перезагрузку в определенное время, какие есть варианты, ОС debian.

Спасибо, запланировать reboot в определенное время, сейчас попробую.

Не смог пройти мимо. 1. Электрики 2. Энергосбыт - это для случая если много серверов распределенных на разных площадях. Оба варианта рабочие, проверено многолетней практикой. Но есть минус, что первый что второй вариант не смотря на наличие упс может привести к порче оборудования.

Ну это да, есть такие варианты, только каждый день работают.


Можно нанять специальнообученного человека, который будет тыкать кнопку на системнике.

Проблема решил путем настройки планировщика cron.

В смысле, у вас идеально работают сервера, без лагов и зависаний?

У меня да. (На самом деле вру, недавно всплыл мелкий баг cifs, только хард ребут спасал, но это явно не ваш вариант). Необходимости в софт ребуте за свою практику не могу припомнить.

Обычно да, а если дохнут, то ребут не помогает.

Сервер вообще ребутать только по особым случаям. У меня ребутался, когда железо меняли. До этого тоже из-за железа. 571 дней до последнего ребута было.

Если нет апаратных проблем, то без лагов и проблем.

Что у Вас за сервера (апаратная часть) и какой софт крутится?

Память ECC? Чем мониторите нагрузку на сервер?

Ну в принципе логично, если все нормально настроено, походу вы правы. В основном сейчас работаю с VPN, openvpn, так же была необходимость в сервере приложений Jboss, тут-то я и встретил несколько проблем, но позже понял почему. Суть а том, что я использую в основном VPS и для своих целей, по рабочим сервера как-то проблем нет, там уже было все сделано нормально, когда я пришел, а так экспериментирую для знаний и опыта. А случай был в том, что есть сервер ОЗУ 256Мб, ЦП 2Ггц, сначала поставил OpenVpn, потом туда еще LAMP и еще что-то, смотрю что все начинает зависать, я в SSH еле вхожу, начал мониторить, использую glances, информативный мониторинг и вижу, что ОЗУ уже было 20 МБ, к тому времени еще SWAP подключил, хорошо VPS на SSD, ну тут тоже все начало заполняться. Так что на опыте узнал, что надо ставить и смотреть одновременно. Что касается перезагрузки, то мне почему-то казалось, что это необходимо делать каждый день, ну сейчас опять опытным путем понял обратное. А чем вы пользуетесь для мониторинга?

Читайте также: