0

FNOS开机自动运行脚本

发表于:2024-9-25 16:27:16 虚拟机(敬请期待) 1110
本帖最后由 192 于 2024-9-25 16:31 编辑




接上,在FNOS下部署了一台虚拟机DSM
首先说一下kvm本身web管理界面自带开机启动某一台虚拟机的,
但是因为虚拟网桥防火墙会阻碍某黑的引导,所以需要关闭防火墙才能正常启动,
因为是通过echo改值
echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables
这种方式重启之后防火墙会自动打开赋值为1,所以需要每次开机计划中加入,
(理论上应该是可以通过修改文件方式来关闭防火墙的,请自行搜索,我这里绕过)


顺便在脚本中加入当防火墙关闭后自动启动虚拟机DSM,

这里比较关键的是系统开机加载一些配置需要时间,所以需要脚本反复确认防火墙是否已经关闭再来启动DSM


加入开机计划有很多方式,这里以服务service形式创建

主题为脚本程序
1.创建一个需要开机自启的脚本.sh 可放在任意目录下

#!/bin/bash


while true; do
    value=$(cat /proc/sys/net/bridge/bridge-nf-call-iptables)
    if [ "$value" -eq 0 ; then
        echo "Successfully set the value to 0"
        echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables
        break
    else
        echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables
        echo "Value is not 0, retrying..."
        sleep 1
    fi
done

virsh start nas   #这条指令就是启动我这里名为nas的虚拟机 需根据自己的情况修改



以上我的情况,我这里存放的目录是我的家目录/home/yaotoon/reltab.sh

脚本要运行需要可执行X权限,下面给权限

chmod  +x /home/yaotoon/reltab.sh

这里可以先通过. 指令来确认自己的脚本是否可以正常运行

脚本这里基本就这样,但此时这个脚本只是可执行并不能开机启动

2.创建自启该脚本对应的服务存放于/etc/systemd/system/目录下
我这里是br0tab0.service
你可以通过vim nano等工具创建
先cd到系统服务目录
cd /cetc/systemd/system/

然后创建
nano br0tab0.service      

以下是服务模板



[Unit]
Description=br0tab0
After=network.target

[Service]
ExecStart=/home/yaotoon/reltab.sh        #这里是你的脚本.sh文件存放目录需根据自己的情况修改
Type=simple

[Install]
WantedBy=multi-user.target


然后依次执行以下指令
systemctl daemon-reload

systemctl enable br0tab0.service

systemctl start br0tab0.service

systemctl status br0tab0.service
如果在最后服务状态查询中返回绿色enable字样说明你的服务是有效的

然后就可以reboot测试是否正常

    可能这样的方式会有些繁琐,不如直接从配置文件中关闭防火墙来的便捷。我主要记录自己在折腾过程中的一些心得和
从网上收集到的信息。因为现在信息太多太乱,我也试过很多方式都失败了。主要是一个学习的过程,比如以后需要什么开机
计划我可以直接在自己的.sh脚本中添加就行,举一反三。把最后成功的案例记录下来,希望对大家有点屁用





收藏
送赞
分享

发表回复

评论列表(1)

真的顶,太强了
2024-11-12 10:47:16 回复
192

TA还没有介绍自己~

1

主题

10

回帖

13

积分

社区共建团

积分
13

社区共建团荣誉勋章

话题