Как запустить сценарий оболочки после перезагрузки в определенной точке сценария
Я новичок в сценариях оболочки. Я пытаюсь автоматизировать базовую установку сервера на моей работе, в данном случае на сервере freebsd.
Теперь мой вопрос: возможно ли выполнить сценарий оболочки и после перезагрузки выполнить автоматический переход в последний момент, когда мой сценарий был прерван завершением работы?
freebsd-update upgrade -r 11.1-RELEASE
freebsd-update install
shutdown -r now
freebsd-update install
Конечно, остановка сервера в моем сценарии останавливает все выполнение, но есть ли возможность перейти в сценарий после повторного запуска системы и выполнить последнюю команду из приведенных выше команд?
freebsd-update install
1 ответ
Вы можете написать что-то вроде этого:
run_dir=/var/run/myscript # change the name as appropriate
check_step() {
step=$1
step_file=$run_dir/$step.step.done
if [ ! -f "$step_file" ]; then
return 0
else
echo "Step $step skipped"
return 1
fi
}
step_done() {
touch "$run_dir/$1.step.done" && echo finished step $1
}
mkdir -p "$run_dir"
check_step upgrade && freebsd-update upgrade -r 11.1-RELEASE && step_done upgrade
check_step install1 && freebsd-update install && step_done install1
shutdown -r now
check_step install2 && freebsd-update install && step_done install2
- check_step проверяет, сделан ли уже определенный шаг
- step_done помечает шаг как выполненный