RhelCentos环境开关机自动脚本
- 游戏开发
- 2025-09-10 06:51:02

Rhel Centos环境开关机自动脚本 1. 业务需求2. 解决方法2.1 rc.local2.2 rc.d2.3 systemd2.4 systemd附着的方法2.5 tuned 3. 测试 1. 业务需求
一台较老的服务器上面业务比较简单,提供一个简单的网站,但已经没有业务的运维人员. 想达到的效果: 由于是非标准的apache或者nginx之类的服务,需要开机执行一个脚本来启动业务.
2. 解决方法方法有:
rc.local中添加脚本将脚本添加到/etc/rcx.d/中将脚本做成systemd实现开机启动将脚本附着到其他systemd中随其他systemd一起启动将脚本放到tuned里实现开机启动为了方便测试,就写了个简单的脚本.内容如下 makeafile.sh
#!/bin/bash filename=$1 mkdir -p /tmp/test echo `date` > /tmp/test/${filename}start.sh
#!/bin/bash /opt/makeafile.sh test.txt & exit $?stop.sh
#!/bin/bash echo `date` >> /tmp/stop.txt当然必须给他加上可执行权限
chmod +x makeafile.sh chmod +x start.sh chmod +x stop.sh 2.1 rc.local这个比较简单,就是将脚本添加到rc.local的末尾,但值得注意的是必须给rc.local加上执行权限.
echo '/opt/start.sh' >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local但这个办法只能加开机执行,没法关机执行
2.2 rc.d先执行以下命令确认服务器运行在哪个级别下
[root@centos7 ~]# runlevel N 3将文件复制到对应级别的目录下
cp /opt/start.sh /etc/rc3.d/S98start_makeafile cp /opt/start.sh /etc/init.d/start_makeafile cp /opt/stop.sh /etc/rc3.d/K98stop_makeafile cp /opt/stop.sh /etc/init.d/stop_makeafile 2.3 systemd文件位置: /etc/systemd/system/mkfile.service 内容如下:
[Unit] Description=Run mkfl script at startup After=network.target [Service] Type=oneshot ExecStart=/opt/start.sh ExecStop=/opt/stop.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target配置后执行
systemctl enable --now mkfile 2.4 systemd附着的方法这个方法依赖相对隐蔽,但一旦被附着的服务被disabled了,那么你的这个也失效了. 方法1:
[Unit] Description=Run mkfl script at startup After=network.target [Service] Type=oneshot ExecStartPre=/opt/start2.sh ExecStart=/opt/start.sh ExecStop=/opt/stop.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target方法2:
[Unit] Description=Run mkfl script at startup After=network.target [Service] Type=oneshot ExecStart=/opt/start2.sh && /opt/start.sh ExecStop=/opt/stop.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target 2.5 tuned使用 tuned 的插件机制,好处就是隐蔽.一般不是资深的运维很难发现,当然时间长了自己也容易忘记.(详细学习的话见rh442的内容) 创建自定义脚本
mkdir -p /etc/tuned/mkfile.d vim /etc/tuned/mkfile.d/mkfile.conf在配置文件中添加以下内容:
[main] type=script script=/opt/stop.sh启用自定义插件
编辑 /etc/tuned/tuned-main.conf 文件,添加你的自定义插件到 include 列表中:
[main] include=virtual-host,mkfile重启 tuned 服务
systemctl restart tuned 3. 测试至此实验完成. 本实验纯技术角度实现功能,别拿去干坏事. 任何读者添加恶意脚本删库与本人无关.
RhelCentos环境开关机自动脚本由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“RhelCentos环境开关机自动脚本”
上一篇
NLP八股DAY1:BERT