1. iptables备份与恢复

  • iptables-save >filename, 备份规则

  • iptables-restore <filename, 恢复备份

 

  1. firewalld

  • zone-代表着一个规则的集合,不同的使用场景使用固定iptables规则

类似Windows中,新电脑联网时电脑询问网络属于家庭办公还是公共

  • 9 zones不同的zone设置的iptables是不同的

  • 可以针对指定的网卡设置iptables规则

  • service就是不同的服务(端口),针对不同的服务指定规则,类似于添加白名单

  • /etc/firewalld/zones下面保存着firewalld的配置文件,默认为空,只有在执行了firewalld-cmd --reload才会有内容显示出来

 

  1. 任务计划cron

  • 分时日月周

  • crontab -r,会删除全部计划,慎用

  • 如果公司自动化运维工具管理任务,那么就不要自己手动改动

  • 备份任务计划列表,两种方法

@拷贝/var/spool/cron/username

@crontab -l >filename

  • 有时写好cron但是不执行(cron有自动的语法检测)原因如下:

@cron服务没有开启,可以systemctl status crond来查看,如果没有开启systemctl start crond

@脚本有问题,手动执行以下看看有没有问题

@cron里面的命令是有的相对路径,因为cron里面的PATH很短,命令可能没在PATH中

那么我么可以定义PATH要么使用绝对路径

@有可能没有加正确和错误的重定向(&>),所以最好养成习惯写任务计划的时候要添加重定向,如果没有任何输出的命令也可以把它重定向到/dev/null中去

 

  1. chkconfig

CentOS6管理service的工具,包含的服务network,iptables-service

  • chkconfig service on/off

这条命令就是指让service在2、3、4、5级别on或者off,因为0级别为关机,那service必须是off;6级别为重启要先关机,所以也是off

  • 可以把一个启动脚本加到服务中来

语法 chkconfig --add 脚本

首先需要把脚本添加到/etc/init.d中,只有在这个目录下的脚本才能添加到服务列表中去,且文件权限要为755

然而脚本中必须含下图中红色框里面的内容,才会被识别出来

11-21 课堂笔记

 

  1. systemd

CentOS7的服务管理工具

 

  1. unit、target

也是一种集合,包括service,target(多个unit组成的组), device, mount, automount...

一个service属于一种unit,多个unit组成了一个target, 一个target又包含了多种unit

  • CentOS6的任务管理工具chkconfig有一个0-6级别,同样的在CentOS7上有几个target对应了6的系统启动级别,比如multi-user.target就是对应了6系统的3级别

  • 更改默认的target 

systemctl set-default multi-user.target

11-21 课堂笔记

 

 

扩展

1)

11-21 课堂笔记

CentOS5/6/7服务启动的管理机制

  • 在5时有严格的启动顺序1-2-3-4-5,依次启动,所以启动时间较长

  • 在6中,如果服务没有依赖关系可以同时启动,但是有依赖关系就要一次启动

例如sshd和iptables无依赖关系就可以并列,但是network和sshd有依赖关系就要先启动network再启动sshd

  • 在7就同时启动,跟有没有依赖关系无关

 

2)https://www.jianshu.com/p/3009a9b7d024?from=timelinehttps://blog.csdn.net/jf16831207/article/details/76457102

anacron 为cron的扩展

应用场景:我们定了一个任务计划晚上9:30要执行一个脚本,但是在9点半之前机器意外停电关机,所以9点半的时候就无法执行,在电力恢复之后,我们要有一个机制在机器没有启动的期间是否有应该执行的任务没有执行,如果有就可以补救一下,这时就需要anacron来唤醒停机期间的任务

anacron这个程序的脚本在/etc/cron.hourly, 也就是0anacron这个文件

11-21 课堂笔记

 

  • 我们来看下这个文件/etc/anacron.hourly/0anacron

 

#!/bin/sh

# Check whether 0anacron was run today already 查看今天是否已经执行过anacron,如果已经执行过就没有必要再执行一次了

if test -r /var/spool/anacron/cron.daily; then

    day=`cat /var/spool/anacron/cron.daily`

fi

if [ `date +%Y%m%d` = "$day" ]; then

    exit 0;

fi

 

# Do not run jobs when on battery power

if test -x /usr/bin/on_ac_power; then

    /usr/bin/on_ac_power >/dev/null 2>&1

    if test $? -eq 1; then

    exit 0

    fi

fi

/usr/sbin/anacron -s

anacron这个程序会根据 /etc/anacrontab 这个文件中的配置来决定该如何进行,具体的anacron的执行参数读者可以通过 man anacron来查询。

 

  • 再来看/etc/anacrontab

 

# /etc/anacrontab: configuration file for anacron

 

# See anacron(8) and anacrontab(5) for details.

 

SHELL=/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

# the maximal random delay added to the base delay of the jobs

RANDOM_DELAY=45

# the jobs will be started during the following hours only

START_HOURS_RANGE=3-22

 

#period in days   delay in minutes   job-identifier   command

1       5       cron.daily              nice run-parts /etc/cron.daily

7       25      cron.weekly             nice run-parts /etc/cron.weekly

@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

 

 (1)period in days:指的是距上次执行anacron相差的天数,如果超过定义的天数,就执行后面的nice run-parts  /etc/cron.daily,否则就不执行。

(2)delay in minutes:即便是超过天数要执行后面的代码,也要延迟多少分钟,因为可能在某些情况下立即启动会和其他地方造成冲突

(3)job -identifier cron.daily:和 /var/spool/anacron中记载该项任务的名称一样

(4)command - nice run-parts /etc/cron.daily 实际要执行的指令:run-parts 表示执行后面/etc/cron.daily这个目录中的所有可执行文件。

相关文章: