linux + 在 linux 重启后激活一些脚本

linux + 在 linux 重启后激活一些脚本

我有 Linux 5.3 redhat,我想将脚本 add_dhcp.ksh 添加到我的 Linux 机器,以便在重启后自动更新 ifcfg-eth1(此脚本启用 dhcp 并启动​​ eth1)

我的问题:请告知在 Linux 重启后自动激活 add_dhcp.ksh 脚本所需的步骤,

    add_dhcp.ksh script

    #!/bin/ksh


    perl -i -pe "s/none/dhcp/"  /etc/sysconfig/network-scripts/ifcfg-eth1 
    perl -i -pe "s/no/yes/"  /etc/sysconfig/network-scripts/ifcfg-eth1 
    ifdown eth1
    ifup   eth1

答案1

通过将此脚本添加到 /etc/rc.local 文件来运行它。无论 rc.local 文件中存在什么,它都会在每次启动时由 Linux 运行。顺序很好,只是您可以使用“service network restart”而不是 ifup ifdown。。此外,每次重新启动时都需要手动执行此操作吗?为什么不在此接口上永久启用 DHCP?

答案2

您可以使用 cron 和 /etc/crontab 中的 @reboot“time”来执行此操作,例如

@reboot root /path/to/add_dhcp.ksh 

这将在启动时运行一次您的命令。

编辑:

如果您不想编辑任何现有系统文件,则可以在 /etc/cron.d 中创建一个文件。此目录就像是 /etc/crontab 文件的扩展,文件使用相同的格式。请注意,此目录中的文件只能由 root 写入。

创建文件(/etc/cron.d/rebootfixup例如)并添加如下行

@reboot root /path/to/add_dhcp.ksh

现在,当您的系统启动时,该文件将被添加到 cron 作业列表中并采取适当的行动。

答案3

我认为通常的做法是把它放到 rc.local 中,但如果你不想更改文件,而想要一个纯目录方法,你可以将您的脚本放入 /etc/init.d 目录。配置它以接受“start”或“stop”参数(尽管停止参数可能与此特定用例无关)。然后在 /etc/rc3.d/ 中添加一个符号链接以指向您的脚本,例如,名称为 S99adddhcp。

这些“rc”目录作为启动过程的一部分被读取,如果您出于某种原因喜欢这种方法而不是 rc.local,您可以在此处修改启动行为。

这里有许多关于这种配置的参考资料,值得一读:

http://www.notesbit.com/index.php/scripts-unix/customizing-system-startup-in-redhat-linux/ http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/

--马特

相关内容