如何在脚本的特定点重新启动后启动shell脚本
我不熟悉shell脚本。 我试图在我的工作中自动化服务器的基本安装,在本例中,是一个freebsd服务器 现在,我的问题是,是否可以执行一个shell脚本并在重新启动后在脚本被关闭中断的最后一点自动继续如何在脚本的特定点重新启动后启动shell脚本,shell,scripting,freebsd,bsd,Shell,Scripting,Freebsd,Bsd,我不熟悉shell脚本。 我试图在我的工作中自动化服务器的基本安装,在本例中,是一个freebsd服务器 现在,我的问题是,是否可以执行一个shell脚本并在重新启动后在脚本被关闭中断的最后一点自动继续 freebsd-update upgrade -r 11.1-RELEASE freebsd-update install shutdown -r now freebsd-update install 当然,在我的脚本中关闭服务器会停止整个执行,但是在系统再次启动并执行上面命令中的最后一个命
freebsd-update upgrade -r 11.1-RELEASE
freebsd-update install
shutdown -r now
freebsd-update install
当然,在我的脚本中关闭服务器会停止整个执行,但是在系统再次启动并执行上面命令中的最后一个命令后,是否有机会跳转到脚本中
freebsd-update install
你可以这样写:
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
- 检查步骤检查特定步骤是否已完成
- 步骤\完成将步骤标记为完成
/var/run
跟踪步骤。在每个步骤之前,您可以检查步骤文件是否存在,并相应地跳过该步骤。如果步骤执行成功,请创建步骤文件。最后,您可以删除所有step文件。谢谢,这听起来不错,但我不知道如何执行。FreeBSD上的/bin/Bash未安装Bash。更新了答案以使其与POSIX兼容。