crontab实现开机自启动

前言

在使用UOS系统的时候发现通过service iptables save 的方式保存防火墙规则不生效,便采用iptables-save 的方式,但是当服务器重启时无法自动恢复先前设置的规则,需要设置开机自启动

[root@uos ~]# service iptables save
iptables: Nothing to save.[WARNING]
[root@uos ~]# iptables-save > /etc/iptables
[root@uos ~]# iptables-restore < /etc/iptables

使用crontab

无意中发现可以通过crontab实现开启自启动,步骤如下:

方式一

我们可以通过 crontab -e 来设置

@reboot  /usr/sbin/iptables-restore < /etc/iptables

方式二

我们可以通过编辑 /etc/crontab 来设置

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

@reboot root /usr/sbin/iptables-restore < /etc/iptables

两者区别

crontab -e 与 /etc/crontab 修改语法格式不一样,后者多一个 user 指定

修改/etc/crontab这种方法只有root用户能用,这种方法更加方便与直接,直接给其他用户设置计划任务,而且还可以指定执行shell等等,可以用来执行系统的例行性任务;
crontab -e这种所有用户都可以使用,普通用户也只能为自己设置计划任务,然后自动写入/var/spool/cron/usename。

基本上,cron服务的最低检测时间单位是分钟,所以cron会每分钟读取一次/etc/crontab与/var/spool/cron中的数据内容,因此,只要编辑完/etc/crontab文件并且保存之后,crontab时设定就会自动执行。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容