Как запустить сценарий оболочки после перезагрузки в определенной точке сценария - PullRequest
0 голосов
/ 24 мая 2018

Я новичок в сценариях оболочки.Я пытаюсь автоматизировать базовую установку сервера на моей работе, в данном случае на сервере freebsd.

Теперь мой вопрос: возможно ли выполнить сценарий оболочки и после перезагрузки выполнить автоматический переход в последний момент, когда мой сценарий был прерван завершением работы?

freebsd-update upgrade -r 11.1-RELEASE 
freebsd-update install
shutdown -r now
freebsd-update install

Конечноотключение сервера в моем сценарии останавливает все выполнение, но есть ли возможность перейти в сценарий после повторного запуска системы и выполнить последнюю команду из приведенных выше команд?

freebsd-update install

1 Ответ

0 голосов
/ 25 мая 2018

Вы можете написать что-то вроде этого:

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 помечает шаг как выполненный
...