加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 16:49:32 所属栏目:Linux 来源:网络整理
导读:我想为服务器B做一个夜间“hotclone”服务器A.建议服务器B在此操作期间运行最小守护进程,因此我想创建一个“最
我想为服务器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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读