linux系统定时任务之crontab

什么是crontab

在Linux或类Unix系统中,通常使用crontab命令在指定的时间执行一个shell脚本或者一系列Linux命令,也就是通常所说的定时任务。

crond

crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程

在 Linux 系统中查看当前配置的定时任务

  1. crontab 命令
  • crontab -l 列出当前用户自己的 cron 任务
  • crontab -u username 列出指定用户的 cron 任务(需要root权限)
  1. /etc/crontab 文件
    直接查看这个文件可以看到系统全局的 cron 任务
  2. /etc/cron.*/ 目录
    这个目录下按执行频率存放了不同的 cron 任务,如:
  • /etc/cron.hourly: 每小时执行
  • /etc/cron.daily: 每天执行
  • /etc/cron.weekly: 每周执行
  • /etc/cron.monthly: 每月执行

停止和删除定时任务的方法

停止:
将任务在crontab中的记录注释或删除即可暂停该任务。
删除:
使用crontab -e编辑任务,找到对应任务并完全删除即可永久删除该定时任务。
也可以用crontab -r完全清空crontab来删除所有定时任务。

cron定时任务控制防火墙恢复

有时候,有人会把防火墙规则写的定时任务中,防止别人修改。有时候,我们需要去掉这个定时任务,以及开放防火墙,步骤如下:

  1. crontab -r完全清空crontab来删除所有定时任务。
crontab -r
systemctl restart crond
  1. 查看当前 filter 表 INPUT,OUTPUT,FORWARD 链的默认策略:
iptables -L -n
  1. 修改默认策略为 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
  1. 保存到 /etc/iptables/rules.v4 文件:
iptables-save > /etc/iptables/rules.v4 

切记,设置默认防火墙规则是开放之后,我们再清空防火墙规则

iptables -F
09-07 06:13