LinuxForum.Fans
Тема

Перезагрузка сервера в определенное время.

Автор: nosach_zzz 13 сообщений 6728 просмотров
#319979

Здравствуйте, Уважаемые форумчане. Так как я новичок и не знаю, многого в Debian Linux ОС прошу у Вас помощи.

Вообщем имеется свой VPS сервер и стоит там Debian 6.0 и я хочу выставить в кроне, чтоб сервер перезагружался в определенное время.

Подскажите, как мне правильно в crontab -e настроить перезагрузку сервера в определенное время. Я хочу, чтоб VPS каждое утро в 5 часов утра перезагружалась.

Помогите пожалуйста.

Вот эти команды не помогают:
1 5 * * * root /sbin/shutdown -r now
0 5 * * * root /sbin/shutdown -r now
0 5 * * * root /sbin/reboot


Когда то на CentOS делал, но тут вовсе другой дистрибутив. Спасибо за ответы.

И с праздником Вас.

#320022
text
shutdown -r now

Немедленная перезагрузка

text
shutdown -r 05:00

Перезагрузка в 05:00

text
shutdown -c

Отмена

Моя заметка по Cron

Показать

cron - это сервис(демон) который выполняет определенные команды в указанное время
######## Файлы конфигурации #########
Основной системный файл конфигурации находится в /etc/crontab
Он служит в основном для запуска системных заданий.
Файлы конфигурации пользователей находятся в директориях:
/usr/spool/cron/crontabs
/var/spool/cron/crontabs
там нет идентификатора пользователя(он не нужен)
Администраторы многопользовательских систем могут контролировать, кому из пользователей разрешено использовать Cron, размещая их имена в одном из двух файлов, /etc/cron.allow и /etc/cron.deny.

############# Ключи запуска crontab ###############################
crontab -e запускается пользователем для редактирования пользовательского файла crontab
crontab -r удаление пользовательского файла crontab
crontab -l выводит содержимое файла crontab
crontab -u username запускается суперпользователем(root) для изменения crontab файлов других пользователей

############## Параметры файла crontab ###########################################
Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели).
В каждое из пяти временных полей вы можете поместить:
* означающее любое значение
5 одиночное значение
15,25,40 список значений разделенных запятыми
9-18 диапазон значений
*/5 период значений(в поле минуты будет означать каждые 5 минут)

Все остальные символы в строке интерпретируются как выполняемая команда с её параметрами. Если команда отправляет какой-нибудь текст в стандартный вывод, этот текст отправляется по e-mail пользователю.

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)

Примеры:
*/10 * * 5,7,11 * root command1 команда будет запускатся каждые 10 минут в мае июле ноябре
0 9-18 * * 1-5 root command2 команда будет запускатся раз в час во время рабочего дня(с 9 до 18) с понедельника по пятницу

# Оптимизируем базу данных sqlite браузера Iceweasel
51 3 * * * find ~/.mozilla/firefox/ -name *.sqlite -exec sqlite3 {} VACUUM \ 2>&1 >> $HOME/cron.log

############# Запись в лог ########################

Запись в лог:
45 * * * * /home/admin/.notify.sh 2>&1 >>/tmp/crond.log

############# Примеры crontab ################################
# как обычно, с символа '#' начинаются комментарии
# в качестве командного интерпретатора использовать /bin/sh
SHELL=/bin/sh
# результаты работы отправлять по этому адресу
MAILTO=paul@example.org
# добавить в PATH
PATH=$PATH:$HOME/bin

# Здесь начинаются задания
# выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
# выполнять 1 числа каждого месяца в 14 часов 15 минут
15 14 1 * * $HOME/bin/monthly
# каждый рабочий день в 22:00
0 22 * * 1-5 echo "Пора домой" | mail -s "Уже 22:00" john

23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."
5 4 * * sun echo "Выполняется в 4:05 в воскресенье"
0 0 1 1 * echo "С новым годом!"
15 10,13 * * 1,4 echo "Эта надпись выводится в понедельник и четверг в 10:15 и 13:15"
0-59 * * * * echo "Выполняется ежеминутно"
1-59/2 * * * * echo "Выполняется по нечетным минутам"
# каждые 5 минут
*/5 * * * * echo "Прошло пять минут"

# m h dom mon dow command
# Запускаю eMule ночью в 1 час ночи 10 минут
10 1 * * * export DISPLAY=:0 && amule
# Останавливаю Emule утром в 10 часов 10 минут
10 10 * * * export DISPLAY=:0 && killall amule

Попробуйте изменить на

text
0 5 * * * root '/sbin/shutdown -r now'
#320023
"nosach.zzz⇓" написал:
1 5 * * * root /sbin/shutdown -r now

сдаётся мне, «root» тут лишний... ЕМНИП по дефолту в дебиане какой-то фанерный крон, который этого не умеет...

#320050
stalker_tk написал:
text
shutdown -r now

Немедленная перезагрузка

text
shutdown -r 05:00

Перезагрузка в 05:00

text
shutdown -c

Отмена

Моя заметка по Cron

Показать

cron - это сервис(демон) который выполняет определенные команды в указанное время
######## Файлы конфигурации #########
Основной системный файл конфигурации находится в /etc/crontab
Он служит в основном для запуска системных заданий.
Файлы конфигурации пользователей находятся в директориях:
/usr/spool/cron/crontabs
/var/spool/cron/crontabs
там нет идентификатора пользователя(он не нужен)
Администраторы многопользовательских систем могут контролировать, кому из пользователей разрешено использовать Cron, размещая их имена в одном из двух файлов, /etc/cron.allow и /etc/cron.deny.

############# Ключи запуска crontab ###############################
crontab -e запускается пользователем для редактирования пользовательского файла crontab
crontab -r удаление пользовательского файла crontab
crontab -l выводит содержимое файла crontab
crontab -u username запускается суперпользователем(root) для изменения crontab файлов других пользователей

############## Параметры файла crontab ###########################################
Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели).
В каждое из пяти временных полей вы можете поместить:
* означающее любое значение
5 одиночное значение
15,25,40 список значений разделенных запятыми
9-18 диапазон значений
*/5 период значений(в поле минуты будет означать каждые 5 минут)

Все остальные символы в строке интерпретируются как выполняемая команда с её параметрами. Если команда отправляет какой-нибудь текст в стандартный вывод, этот текст отправляется по e-mail пользователю.

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)

Примеры:
*/10 * * 5,7,11 * root command1 команда будет запускатся каждые 10 минут в мае июле ноябре
0 9-18 * * 1-5 root command2 команда будет запускатся раз в час во время рабочего дня(с 9 до 18) с понедельника по пятницу

# Оптимизируем базу данных sqlite браузера Iceweasel
51 3 * * * find ~/.mozilla/firefox/ -name *.sqlite -exec sqlite3 {} VACUUM \ 2>&1 >> $HOME/cron.log

############# Запись в лог ########################

Запись в лог:
45 * * * * /home/admin/.notify.sh 2>&1 >>/tmp/crond.log

############# Примеры crontab ################################
# как обычно, с символа '#' начинаются комментарии
# в качестве командного интерпретатора использовать /bin/sh
SHELL=/bin/sh
# результаты работы отправлять по этому адресу
MAILTO=paul@example.org
# добавить в PATH
PATH=$PATH:$HOME/bin

# Здесь начинаются задания
# выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
# выполнять 1 числа каждого месяца в 14 часов 15 минут
15 14 1 * * $HOME/bin/monthly
# каждый рабочий день в 22:00
0 22 * * 1-5 echo "Пора домой" | mail -s "Уже 22:00" john

23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."
5 4 * * sun echo "Выполняется в 4:05 в воскресенье"
0 0 1 1 * echo "С новым годом!"
15 10,13 * * 1,4 echo "Эта надпись выводится в понедельник и четверг в 10:15 и 13:15"
0-59 * * * * echo "Выполняется ежеминутно"
1-59/2 * * * * echo "Выполняется по нечетным минутам"
# каждые 5 минут
*/5 * * * * echo "Прошло пять минут"

# m h dom mon dow command
# Запускаю eMule ночью в 1 час ночи 10 минут
10 1 * * * export DISPLAY=:0 && amule
# Останавливаю Emule утром в 10 часов 10 минут
10 10 * * * export DISPLAY=:0 && killall amule

Попробуйте изменить на

text
0 5 * * * root '/sbin/shutdown -r now'

Спасибо. Добавил в крон. Посмотрим, что оно нам скажет :)

#320051
Fat-Zer написал:
[quote="nosach.zzz⇓"]1 5 * * * root /sbin/shutdown -r now

сдаётся мне, «root» тут лишний... ЕМНИП по дефолту в дебиане какой-то фанерный крон, который этого не умеет...[/quote]

Хорошо, попробуем и без рут. Может сработает. Спасибо.

#320180

0 5 * * * root '/sbin/shutdown -r now'

Извините, но данная команда не работает VPS сервер не перезагрузился. Хотя я крон на сервере перезапустил. (/etc/init.d/cron restart).

#320264
text
0 5 * * * root '/sbin/shutdown -r now' 2>&1 >>/tmp/crond.log

Попробуйте так и посмотрите что будет в /tmp/crond.log
Проверьте строку PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin в /etc/crontab
Также я бы проверил есть-ли файлы /etc/shutdown.allow /etc/shutdown.denny
Попробуйте написать скрипт, и запускать его кроном.

#320270
"stalker_tk⇓" написал:
Попробуйте так и посмотрите что будет в /tmp/crond.log
Проверьте строку PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin в /etc/crontab
Также я бы проверил есть-ли файлы /etc/shutdown.allow /etc/shutdown.denny
Попробуйте написать скрипт, и запускать его кроном.

самое забавное, что с кавычками команды работать ни как не будут т.к. крон просто скармливает их system()...

nosach.zzz, убрать «root» то не помогает?

#320273

Не понял что вы тут творите, crontab -e откроет для редактирования задачи того пользователя, от которого была введена команда crontab -e, и пользователя указывать не надо, это не только в Debian, это везде так.
Если уж приспичило, то можно и в системном файле (/etc/crontab) писать задания (что не рекомендуется), вот в нем как раз надо указывать пользователя.
Ну и после добавления новых задач рестарт крону не забываем.

#320274
"zenon⇓" написал:
Не понял что вы тут творите,

Да так... коллективно тупим на базе незнания=))

#320313

"Fat-Zer⇓" написал:
самое забавное, что с кавычками команды работать ни как не будут т.к. крон просто скармливает их system()...
o_O а поподробней можно? Я наоборот думал что кавычки нужны для того чтоб крон корректно выполнил команду с пробелами (иногда такое в bash наблюдал)
"Fat-Zer⇓" написал:
Да так... коллективно тупим на базе незнания=))
*SCRATCH*
#320334
"stalker_tk⇓" написал:
а поподробней можно? Я наоборот думал что кавычки нужны для того чтоб крон корректно выполнил команду с пробелами (иногда такое в bash наблюдал)

cron парсит /etc/crontab примерно так: читает 5 колонок времени, читает пользователя, а дальше всю оставшуюся строку сохраняет «как есть», когда время пришло крон тупо скармливает system() [man 3 system] оставшуюся строку.
в результате запускается процесс с параметрами: {"sh", "-c", "то что было в кроне"}

кавычки нужны будут, если надо будет запустить скрипт "/home/users/Васины Скриптики/сделать добро.sh", но параметры должны быть за ним.
соответственно в твоём примере будет выполняться программа, которая называется в точности '/sbin/shutdown -r now'

#320354

Fat-Zer Спасибо, надо будет вдумчиво перечитать "Основы написания скриптов на Bash" Видно не очень хорошо понимаю смысл и разницу между " и ' и `
P.S. Я к тому что, думал от них вреда не будет и все сработает :[

Войдите или зарегистрируйтесь, чтобы ответить.