如何在重新启动或启动过程中自动执行命令或脚本

我总是很着迷在幕后的事情,当我 启动Linux系统和登录 。通过按下裸机上的电源按钮或启动虚拟机,您可以启动一系列事件,从而导致功能齐全的系统 - 有时在不到一分钟的时间内。当您注销和/或关闭系统时,情况也是如此。 什么使这更有趣和有趣的事实,你可以让操作系统执行特定的操作,当它启动和登录或注销。 在这篇发行版的文章中,我们将讨论在Linux中实现这些目标的传统方法。 注意 :我们假设使用 Bash作为登录和注销事件的主shell。如果你碰巧使用不同的方法,这些方法中的一些可能会或可能不工作。如果有疑问,请参考shell的文档。

在重新引导或启动期间执行Linux脚本

在启动期间执行命令或运行脚本有两种传统方法:

方法#1 - 使用cron作业

除了广泛用于指示日程表的通常格式(分钟/小时/月/日/日)外, cron调度程序还允许使用 @reboot 。此伪指令后跟绝对路径的脚本,将导致它在机器启动时运行。 然而,这种方法有两个警告:
  1. a) cron守护程序必须正在运行(这是正常情况下的情况),和
  2. b)脚本或crontab文件必须包含将需要的环境变量(如果有的话)(有关更多详细信息,请参阅此StackOverflow线程)。

方法#2 - 使用/etc/rc.d/rc.local

此方法即使对于基于systemd的分发也有效。为了使此方法起作用,必须将执行权限授予 /etc/rc.d/rc.local ,如下所示:
# chmod +x /etc/rc.d/rc.local
并在文件底部添加脚本。 下图显示了如何使用 cron作业和 rc.local分别运行两个示例脚本( /home/gacanepa/script1.sh/home/gacanepa/script2.sh )及其各自的结果。
script1.sh:
#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
script2.sh:
#!/bin/bash
SITE="youcl.com"
DIR=/home/gacanepa
echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt

在启动时运行Linux脚本

请记住,以前必须为这两个脚本授予执行权限:
$ chmod +x /home/gacanepa/script1.sh
$ chmod +x /home/gacanepa/script2.sh

在登录和注销时执行Linux脚本

要在登录或注销时执行脚本,请分别使用 ~.bash_profile和〜.bash_logout。很可能,您需要手动创建后一个文件。只需在每个文件底部以相同的方式调用您的脚本,并准备好去。
概要
在本文中,我们已经解释了如何在重新启动,登录和注销时运行脚本。如果你能想到其他的方法,我们可以包括在这里,随时使用下面的评论表格指出他们。我们期待您的回音!
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏