linux系统定时任务之crontab
什么是crontab
在Linux或类Unix系统中,通常使用crontab命令在指定的时间执行一个shell脚本或者一系列Linux命令,也就是通常所说的定时任务。
crond
crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程
在 Linux 系统中查看当前配置的定时任务
- crontab 命令
crontab -l
列出当前用户自己的 cron 任务crontab -u username
列出指定用户的 cron 任务(需要root权限)
- /etc/crontab 文件
直接查看这个文件可以看到系统全局的 cron 任务 - /etc/cron.*/ 目录
这个目录下按执行频率存放了不同的 cron 任务,如:
- /etc/cron.hourly: 每小时执行
- /etc/cron.daily: 每天执行
- /etc/cron.weekly: 每周执行
- /etc/cron.monthly: 每月执行
停止和删除定时任务的方法
停止:
将任务在crontab中的记录注释或删除即可暂停该任务。
删除:
使用crontab -e
编辑任务,找到对应任务并完全删除即可永久删除该定时任务。
也可以用crontab -r
完全清空crontab来删除所有定时任务。
cron定时任务控制防火墙恢复
有时候,有人会把防火墙规则写的定时任务中,防止别人修改。有时候,我们需要去掉这个定时任务,以及开放防火墙,步骤如下:
- 用
crontab -r
完全清空crontab来删除所有定时任务。
crontab -r
systemctl restart crond
- 查看当前 filter 表 INPUT,OUTPUT,FORWARD 链的默认策略:
iptables -L -n
- 修改默认策略为 ACCEPT:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
使用 iptables -P INPUT ACCEPT 将默认策略设置为 ACCEPT (接受) 这个操作默认是不持久化的。
iptables 的规则设置在内存中,重启后会失效。要使iptables规则持久化,需要额外保存到文件中。
想要让iptables -P INPUT ACCEPT
这个默认 ACCEPT 的规则设置持久化,必须配合iptables-save将规则保存到文件,并在启动脚本中重新加载这些规则
常用的持久化iptables规则的方法有:
5. 保存到 /etc/sysconfig/iptables 文件:
iptables-save > /etc/sysconfig/iptables
- 保存到 /etc/iptables/rules.v4 文件:
iptables-save > /etc/iptables/rules.v4
切记,设置默认防火墙规则是开放之后,我们再清空防火墙规则
iptables -F