2018-8-28 课堂笔记

又到了一周的新的开始,刚开始还是来了个小测验,这次考试有几题错的都非常离谱,还是不够细心,看着答案都选错了,做为一个运维工程师还是要足够细心,足够耐心。

1. iptables规则备份和恢复

设定的防火墙规则只是保存在内存中,并没有保存到配置文件中,也就说当系统重启后以前设定的规则就没有了,所以设定好规则后要先保存规则,以免重启后规则丢失。

//通过iptables-save命令备份规则

[root@knightlai ~]#iptables-save >iptables-script

//通过iptables-restore规则集到数据包过滤表中

[root@knightlai ~]#iptables-restore iptables-script

2. firewalld的9个zone

firewalld默认的9个zone说明

区域

说明

drop(丢弃)

任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。

扫描二维码关注公众号,回复: 3090980 查看本文章

block(限制)

任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。

public(公共)

在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接。

external(外部)

特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。

dmz(非军事区)

用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。

work(工作)

用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。

home(家庭)

用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。

internal(内部)

用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。

trusted(信任)

可接受所有的网络连接。

查看所有zone命令:firewall-cmd --get-zones

[root@knightlai ~]#firewall-cmd --get-zones

查看默认的区域

[root@knightlai ~]# firewall-cmd --get-default-zone

public

3. firewalld关于zone的操作

firewalld有两个基础的概念,分别是zone和service,每一个zone里面有不同的iptables规则。

设定系统默认的zone

//设定默认zone为work

[root@knightlai ~]# firewall-cmd --set-default-zone=work

success 

给指定网卡设置zone

[root@knightlai ~]#firewall-cmd --zone=public --add-interface=ens33

给指定网卡变更zone

[root@knightlai ~]#firewall-cmd --get-zone-of-interface=ens33

删除指定网卡的zone

//ens33接口当前所在zone为public

[root@knightlai ~]#firewall-cmd --get-zone-of-interface=ens33

查看活动zone的列表

[root@knightlai ~]#ffirewall-cmd --get-active-zones

查看指定区域的所有设置

[root@knightlai ~]# firewall-cmd --zone=public --list-all

4.firewalld关于service的操作

一项服务可以是本地和目的地端口的列表,如果服务被允许的话,也可以是一系列自动加载的防火墙辅助模块。预先定义的服务的使用,让客户更容易被允许或者被禁止进入服务。与对开放端口或者值域,或者端口截然不同,使用预先定义服务,或者客户限定服务,或许能够让管理更容易。

列出系统里所有的service

[root@knightlai ~]# firewall-cmd --get-services

查看默认zone下的service

[root@knightlai ~]#firewall-cmd --list-services

查看指定zone下的service

[root@knightlai ~]#firewall-cmd --zone=work --list-services

给指定zone来添加服务

//可增加 --permanent选项并重新加载防火墙,使之成为永久性设置。 //firewall-cmd --reload重载防火墙不中断已建立连接 //firewall-cmd --complete-reload不仅仅中断您已经移除的服务,还会中断所有已经建立的连接。

[root@knightlai ~]# firewall-cmd --zone=public --add-service=ftp

从指定zone移除服务

[root@knightlai ~]#firewall-cmd --zone=public --list-services

将添加后的服务保存到配置文件(会在/etc/firewalld/zones目录生成一个配置文件)

//--permanent 写入配置文件永久生效

[root@knightlai ~]# firewall-cmd --zone=public --add-service=ftp --permanent

 

5.linux任务计划cron(重点内容)

对于需要周期性执行的任务可以使用crontab命令,该命令所使用的服务是crond。因此在使用之前一定要先启动crond服务。

当使用者执行crontab命令时,系统会按如下步骤操作

1.先查找/etc/corn.allow文件,在该文件中存在的用户可以使用crontab,不在该文件中的用户不能使用crontab(即使用没有写在/etc/cron.deny中)

2.如果没有/etc/cron.allow就寻找/etc/cron.deny文件,在该文件中存在的用户不能使用crontab,在该文件中不存的用户就可以用crontab

3.如果两个文件都不存在,则只有root可以使用crontab。

多数linux版本默认的文件是/etc/cron.deny,而且该文件为空

crontab建立例行性任务的方式

1.针对用户的例行性任务,用crontab -e命令来管理任务

2.针对系统的例行性任务,可以通过/etc/crontab文件来管理任务

针对用户的例行性任务

语法: crontab [-u username] [-l|-e|-r]

选项说明

-u 只用root才有权限使用这个参数,用于帮助其他用户建立或删除crontab

-e 编辑crontab的工作内容,即进入crontab编辑模式

-l 查看crontab的工作内容

-r 移除crontab的工作内容,如果要删除某一项的内容,只能使用crontab -e手动删除

crontab的模式是:分 时 日 月 周 命令

分范围0-59,时范围0-23,日范围1-31,月范围1-12,周1-7

"-"表示一个时间段范围,可用格式1-5表示一个范围1到5

","表示分割时段的意思,可用格式1,2,3表示1或者2或者3

"*"表示任何时间都能够接受,任何时间都可以执行该命令可用格式。"/n"代表每隔n个时间单位。*/2表示被2整除的数字,比如小时,那就是每隔2小时

查看计划任务列表: crontab -l

[root@knightlai ~]#crontab -l

添加计划任务: crontab -e

[root@knightlai ~]#crontab -e

删除计划任务: crontab -r

[root@knightlai ~]#crontab -r

注意:

命令都用绝对路径的形式

写脚本的时候,添加日志记录功能。

6.chkconfig工具

Centos6及以前版本系统中运行级

等级0表示:表示关机

等级1表示:单用户模式

等级2表示:多用户模式,少nfs服务

等级3表示:多用户模式,不带图形

等级4表示:是一种保留的级别

等级5表示:带图形界面的多用户模式

等级6表示:重新启动

在centos6中的 /etc/inittab 中定义开机的默认运行级别

在centos7中,已经没有用运行级的概念了,只是为了向上兼容。

chkconfig命令主要用来查询或设置系统服务的运行级别,但是并不会立即启动或停止一个服务。chkconfig主要用在Centos6及以前的系统中,Centos7中使用的比较少,已经在向systemd过渡。

用法:

chkconfig [--list] [--type 类型] [名称]

chkconfig --add 名称

chkconfig --del 名称

chkconfig --override 名称

chkconfig [--level 级别] [--type 类型] 名称 on|off|resetpriorities

显示系统服务列表

[root@knightlai ~]#chkconfig --list

关闭指定服务的自动启动

[root@knightlai ~]#chkconfig mysql off

指定服务在某一运行级的关闭与开启//要2级别关闭

[root@knightlai ~]#chkconfig mysql off --level 2

0和1和6级别不能设置成开

0级别在关机状态是不可能开启的

1级别是单用户模式,服务是不可能开启的

6级别在重启的时候,是不可能开启的——>重启相当于先关闭在启动(重启的那一刻是先关闭才对)。

一个脚本加入到服务列表中

首先该启动脚本要放入到 /etc/init.d 这个目录下——>只有在这个目录下,才可以添加到服务列表中去

其次脚本格式有如下要求

1.是一个shell脚本

2.固定格式:

//启动和关闭顺序自己定义即可,这里是 64 36 # chkconfig: 2345 64 36

最后用chkconfig add将相应的脚本加入到服务列表

[root@knightlai ~]#chkconfig --add mysql

删除服务列表中的服务

[root@knightlai ~]#chkconfig --del mysql

7.systemd管理服务

Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。

systemd 的目标是:尽可能启动更少的进程  尽可能将更多进程并行启动

查看systemd信息

显示单元依赖关系

[root@knightlai ~]#systemctl list-dependencies

显示sockets信息和哪些是活动的

[root@knightlai ~]# systemctl list-sockets

查看活动的system任务

[root@knightlai ~]# systemctl list-jobs

查看单元文件及状态

[root@knightlai ~]#systemctl list-unit-files

显示单元是否载入及状态

[root@knightlai ~]# systemctl list-units

显示默认的目标

[root@knightlai ~]# systemctl get-default

管理服务

列出所有的服务

[root@knightlai ~]# systemctl list-units --all --type=service

查看服务状态

[root@knightlai ~]# systemctl status firewalld.service

停止服务

[root@knightlai ~]# systemctl status firewalld.service

改变系统状态

重启

systemctl reboot

关机

systemctl poweroff

进入紧急模式

systemctl emergency

恢复默认目标

systemctl default

8. unit介绍

系统初始化需要做的事情非常多。需要启动后台服务,比如启动 SSHD 服务;需要做配置工作,比如挂载文件系统。这个过程中的每一步都被 systemd 抽象为一个配置单元,即 unit。可以认为一个服务是一个配置单元;一个挂载点是一个配置单元;一个交换分区的配置是一个配置单元;等等。systemd 将配置单元归纳为以下一些不同的类型

service 系统服务

target 多个unit组成的组

device 硬件设备

mount 文件系统挂载点

automount 自动挂载点

path 文件或路径

scope 不是由systemd启动的外部进程

slice 进程组

snapshot systemd快照

socket 进程间通信套接字

swap swap文件

timer 定时器

systemd中与unit相关的命令

列出正在运行的unit

[root@knightlai ~]# systemctl list-units

列出所有,包括失败的或者inactive的

[root@knightlai ~]# systemctl list-units --all

9. target介绍

在Centos7之前的版本,使用运行级别代表特定的操作模式。运行级别被定义为七个级别,用数字0到6表示,每个级别可以启动特定的一些服务。Centos7使用target替换运行级别。

一个service属于一种类型的unit

多个unit组成了一个target

一个target里面包含了多个service

列出系统中所有的target

[root@knightlai ~]# systemctl list-unit-files --type=target

查看指定target下面有哪些unit

[root@knightlai ~]# systemctl list-dependencies multi-user.target

查看所有的target

[root@knightlai ~]#systemctl list-units --type=target --all

查看系统默认的target

[root@knightlai ~]# systemctl get-default

设置默认的target

[root@knightlai ~]# systemctl set-default multi-user.target

扩展习题:cron的练习题:

# For details see man 4 crontabs

# 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
*/5 * * * *root run-parts /root/file
  • 每天凌晨1点20分清除/var/log/slow.log这个文件
  •  20 1 * * * root echo "">/var/log/slow.log
  • 每周日3点执行 “/bin/sh /usr/local/sbin/backup.sh”
  • * * * * 6 root /bin/sh/usr/local/sbin/backup.sh
  • 每月14号4点10分执行 “/bin/sh /usr/local/sbin/backup_month.sh”
  • 10 4  /14 * * root /bin/sh/usr/local/sbin/backup_month.sh
  • 每隔8小时执行 “ntpdate time.windows.com”
  • * /8 * * *  root ntpdate time.windows.com
  • 每天的1点,12点,18点执行 “/bin/sh /usr/local/sbin/test.sh”
  • * 1,12,18 * * *  root  /bin/sh/usr/local/sbin/test.sh
  • 每天的9点到18点执行 “/bin/sh /usr/local/sbin/test2.sh”
  • 18 9 * * * root /bin/sh/usr/local/sbin/test.sh

猜你喜欢

转载自blog.csdn.net/a1779078902/article/details/82183968