我有 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/
--马特