1.防火墙黑白名单

黑名单(阻止特定IP访问)

如:

1
sudo iptables -A INPUT -s 192.168.1.100 -j DROP

白名单(允许特定IP访问)

  1. 设置默认策略为拒绝所有入站连接:
1
sudo iptables -P INPUT DROP

2.允许特定IP地址的访问

例如:

1
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT

保存与恢复

定义Unit File, CentOS 7,8 可以安装 iptables-services 实现iptables.service

1
2
3
4
yum install iptables-services
iptables-save > /etc/sysconfig/iptables
iptables-restore < /etc/sysconfig/iptables
systemctl enable iptables.service

转发本地端口

1
2
3
4
[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 6666 -j REDIRECT --to-port 22
6666也可以访问ssh
[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
8080也可以转到80

2.自动化运维

1.计划任务

1.1一次调度:at(atd服务)
1
2
3
4
5
6
7
[root@localhost ~]# systemctl start atd
[root@localhost ~]# at now +1min
at> useradd xwz
at> <EOT> # Ctrl+D结束
job 1 at Thu Aug 27 15:35:00 2020
[root@localhost ~]# atq
1 Thu Aug 27 15:35:00 2020 a root
1.2循环调度(守护进程crond

cron语法格式:

​ 分 时 日 月 星期 命令

存储位置:

/var/spool/cron

2.文本三剑客

​ 1.grep

​ 实用:查看配置文件时去除所有的注释和空行

1
[root@localhost ~]# grep -Ev "^#|^$" /etc/ssh/sshd_config

​ 2.sed

​ 3.awk

3.shell脚本

​ 练习题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
练习1:计算/etc/passwd文件中第10个用户和第15个用户的ID之和

#!/bin/bash
# 使用 awk 直接从 /etc/passwd 文件中获取第10个和第15个用户的ID
userid1=$(awk -F: 'NR==10{print $3}' /etc/passwd)
userid2=$(awk -F: 'NR==15{print $3}' /etc/passwd)
# 使用 bash 的算术扩展来计算两个ID的和
userid_sum=$((userid1 + userid2))
# 输出结果
echo $userid_sum

练习2:传递两个文件路径参数给脚本,计算这两个文件之中所有空白行之和
#!/bin/bash
# 计算第一个文件的空白行数量
blank1=$(grep "^$" "$1" | wc -l)
# 计算第二个文件的空白行数量
blank2=$(grep "^$" "$2" | wc -l)
# 计算两个文件空白行之和
allblank=$((blank1 + blank2))
# 输出结果
echo "The sum of blank lines: $allblank"

练习3:统计/etc/,/var/,/usr/目录下有多少目录和文件
#!/bin/bash
sum_etc=$(find /etc/ | wc ‐l)
sum_var=$(find /var/ | wc ‐l)
sum_usr=$(find /usr/ | wc ‐l)
sum_all=$[$sum_etc + $sum_var + $sum_usr]
echo $sum_all

注意练习二将将参数传递给脚本:如 chmod +x count_blank_lines.sh ./count_blank_lines.sh file1.txt file2.txt

4.zabbix
  • 在性能和功能上都强大很多
  • 图形相当漂亮
  • 支持多种监控方式等等
  • 支持分布式监控,能监控的 agent 非常多
  • 有图形的 web 配置界面,配置简洁
  • 支持自动发现功能

​ 实验效果见网址http://www.guixiang.fun/?page_id=231

5.ansible

批量系统部署、批量程序部署,批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署能力的是ansible运行的模块,ansible只是提供一个框架。

3.docker守护进程+必备指令

守护进程可以理解为进程守护(进程的守护),是用于监控指定的进程,当发现目标进程工作异常时,可以对该目标进程进行控制。如关闭该进程,并重新启动该进程。
守护进程(守护者程序),目标进程(被守护进程)。
一个守护进程可以对多个目标进程进行守护

镜像指令:

搜索镜像:
1
docker search centos
下载镜像:
1
docker pull centos
查看镜像信息
1
docker images
命令来为本地镜像添加新的标签
1
docker tag centos:latest mycentos:latest
获取该镜像的详细信息
1
docker inspect centos:latest 
镜像导入
1
docker save centos:latest > /opt/centos-1.tar.gz
导出
1
docker load < /opt/centos.tar.gz 
删除镜像
1
docker rmi centos:latest 

容器指令:

启动一个容器
1
docker run -it centos:latest bash
显示正在运行的容器
1
docker ps -a
指定端口映射
1
docker run -p 80:80 --name nginx nginx:latest 
后台启动容器
1
docker run -d -P 80:80 --name nginx nginx:latest
终止、启动容器
1
2
docker stop 容器id
docker start 容器id
删除容器
1
docker rm -f 容器id
批量删除容器
1
docker rm -f `docker ps -a -q`
导入导出容器
1
2
docker export -o /opt/centos.tar 容器id
docker import /opt/centos.tar mycentos:v1

搭建硬盘

我们用fdisk工具辅助,咱不装逼,脚踏实地。

fdisk交互参数(十分重要)

参数 作用
m 查看全部可用的参数
n 添加新的分区
d 删除某个分区信息
l 列出所有可用的分区类型
t 改变某个分区的类型
p 查看分区信息
w 保存并退出
q 不保存直接退出

lsblk列出块设备(如果有sdb空余)

1
2
fdisk /dev/sdb			进入fdisk分区交互
注意内存可以用G表示

分区完后建立文件系统(adb1是分区交互时建立的编号)

1
mkfs.ext4 /dev/sdb1

建立挂载目录

1
mkdir /data1

将挂载目录与分区联系

1
mount /dev/sdb1 /data1

如何解决内存空间不足呢?

命令:

1
free -h

命令会显示系统的内存总量,已使用的内存量,空网内任量和缓存区内存量等位息,如果要直看更洋细的内存信息,可以使用top
解决方案:
1.提出占用大量内存的进程;使用top查当前系统中正在运行的进程,并直找占用大量内存的进程,可以杀死这些进程,或者使用 书 renice 命令降低它们的优先级,以减少它们对内存的需求。
2.增加内存:如果系统的内存不足,可以增加内存来提高系统性能,这可能需要开级硬件或者将系统迁移到更强大的服务留上。
3.优化服务配置:对于某些服务,例如数据库服务或web服务器,可以通过优化其配置文件来减少对内存的需求。