У меня есть скрипт, который запускается для резервного копирования сервера через Rsync. После запуска этого скрипта я хочу, чтобы сервер перезагрузился.
Мой скрипт запускается из Crontab с правами root в 3 часа ночи.
#!/bin/bash
HOST="email"
RSYNC_OPTS="-a -v -v --progress --stats --delete"
RSYNC_DEST="10.0.0.10::$HOST"
BACKUP_LIST="/etc /home /root"
TIMESTAMP="/timestamp-bkup-start.chk"
TIMESTAMP2="/timestamp-bkup-stop.chk"
touch $TIMESTAMP
rsync $RSYNC_OPTS $TIMESTAMP $RSYNC_DEST
for BACKUP_ITEM in $BACKUP_LIST;
do
rsync $RSYNC_OPTS $BACKUP_ITEM $RSYNC_DEST
done
/etc/init.d/zimbra stop
sleep 60s
rsync $RSYNC_OPTS /opt $RSYNC_DEST
touch $TIMESTAMP2
rsync $RSYNC_OPTS $TIMESTAMP2 $RSYNC_DEST
echo `date +%Y%m%d%H%M` >> /var/log/reset
reboot
# $# shows number of args passed
# $1 to access first variable
#if [ $# -eq 1 ]; then
# if [ $1 = "withreboot" ]; then
# echo "rebooting...";
# echo `date +%Y%m%d%H%M` >> /var/log/reset
# /sbin/reboot
# fi
#fi
Я пробовал использовать init 6 вместо перезагрузки. Я пробовал /sbin/reboot.
У меня также есть другой базовый скрипт, который просто эхом отсылает в журнал сброса и запускает перезагрузку без проблем. Просто со скриптом выше сервер не перезапускается.
Если у кого-то есть какие-то теории, было бы здорово, так как у меня закончились идеи.
Спасибо,
Джон
решение1
Может быть, вызов перезагрузки идет через shutdown (т. е. shutdown -r), а reboot --force работает как-то по-другому? (она делает то, что написано на банке...)