系统重启后Linux执行Cron作业

时间:2020-01-09 10:41:30  来源:igfitidea点击:

我在Red Hat Enterprise Linux服务器上。
重新启动命令后,在引导时是否有一种简单的方法来运行脚本或命令?
系统重启后如何在Linux上执行cron作业?

crontab是用于在Cron中安装,卸载或列出用于驱动cron守护程序的表的程序。
每个用户都可以拥有自己的crontab。
您或用户可以使用crontab命令编辑cron作业。
在本教程中我们学习了Linux系统重启后如何运行cron作业。

系统重启后Linux执行cron作业

crontab命令为单个用户维护crontab文件。
可以根据需要安装或删除cron作业。

启动时运行作业(引导时间)

您需要使用名为@ reboot的特殊字符串。
在Linux重新启动命令启动后,它将运行一次。
语法如下:

@reboot  /path/to/job
@reboot  /path/to/shell.script
@reboot  /path/to/command arg1 arg2

这是使用户能够在引导时运行shell脚本或命令而无需root用户访问权限的简便方法。
首先,运行crontab命令:

$ crontab -e

或者

# crontab -e -u UserName
# crontab -e -u Hyman

运行名为/home/Hyman/bin/installnetkit.sh的脚本

@reboot /home/Hyman/bin/installnetkit.sh

这是使用cron作业在启动时运行脚本的超简单方法。

服务器重启后如何自动运行cron作业

假设您的脚本仅需要在5分钟后运行。
例如:重新启动+ 5分钟。
语法如下:

@reboot sleep 300 && /home/wwwjobs/clean-static-cache.sh

sleep命令用于添加指定时间段内的延迟。
在此示例中,600秒钟之后,clean-static-cache.sh在引导时执行。

在启动时自动启动crond

您还需要通过sys v/BSD初始化样式系统启用crond服务。
在RHEL/CentOS/Fedora下,您需要使用chkconfig(ntsysv)命令在启动时启用crond:

# chkconfig crond on
## Commands to start/stop/restart crond for Linux Execute Cron Job ###
# service crond restart
# service crond start
# service crond stop

在Debian/Ubuntu Linux下,使用update-rc.d如下启动开机服务:

# update-rc.d cron defaults

如果您将现代发行版与systemd一起使用,请尝试以下systemctl命令

# systemctl enable crond.service
### this to start/stop/restart crond on systemd enabled distro such centos 7.x/debian/ubutnu/arch ###
# systemctl start crond.service
# systemctl stop crond.service
# systemctl restart crond.service
# systemctl status crond.service

对于带有systemd的Debian/Ubuntu Linux,请尝试:

$ sudo systemctl enable cron.service
$ sudo systemctl start cron.service
$ sudo systemctl stop cron.service
$ sudo systemctl restart cron.service
$ sudo systemctl status cron.service

保存并关闭文件。