linux – 在cron脚本中更改运行级别是否安全?

前端之家收集整理的这篇文章主要介绍了linux – 在cron脚本中更改运行级别是否安全?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想为服务器B做一个夜间“hotclone”服务器A.建议服务器B在此操作期间运行最小守护进程,因此我想创建一个“最小”运行级别,它几乎只运行sshd并切换到/来自中间脚本中的运行级别,即:
# do some stuff ...

# take services down
telinit 2

# do backup ...

# bring services back up
telinit 3

# do post-backup stuff ...

我想做一个运行级别的开关,而不是显式启动/停止服务,所以我可以在许多不同配置的机器上使用相同的脚本(不同的服务,一些在systemd上的systemv-init上).我想将它全部保存在一个脚本中以保持可维护性,而不是创建一堆新的initd / systemd启动/停止脚本.

所以问题的本质是:
* telinit是否会停止脚本(假设cron在两个运行级别中)?
* telinit是否等待完成或立即返回?
*如果上述工作是“安全”的,或者是该方法的潜在问题?
*使用单个脚本是否有更好的方法(再次我宁愿避免安装一堆新的init脚本,所以这个东西基本上是“自包含的”和便携式的)

解决方法

我创建了以下脚本
#!/bin/bash
date
who -r
/sbin/telinit 2
who -r
/sbin/telinit 3
who -r
date

并将其安装在cron中

* * * * * /home/iain/test &>>/tmp/test.out

这是输出

Thu Mar 20 03:06:01 EDT 2014
         run-level 3  2014-03-20 03:05                   last=2
         run-level 2  2014-03-20 03:06                   last=3
         run-level 3  2014-03-20 03:06                   last=2
Thu Mar 20 03:06:01 EDT 2014

如您所见,脚本一直在运行.至于安全性,您可以根据您在环境中的测试来决定.

猜你在找的Linux相关文章