1.防火墙黑白名单
黑名单(阻止特定IP访问)
如:
1
| sudo iptables -A INPUT -s 192.168.1.100 -j DROP
|
白名单(允许特定IP访问)
- 设置默认策略为拒绝所有入站连接:
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 ~] 6666也可以访问ssh [root@localhost ~] 8080也可以转到80
|
2.自动化运维
1.计划任务
1.1一次调度:at(atd
服务)
1 2 3 4 5 6 7
| [root@localhost ~] [root@localhost ~] at> useradd xwz at> <EOT> job 1 at Thu Aug 27 15:35:00 2020 [root@localhost ~] 1 Thu Aug 27 15:35:00 2020 a root
|
1.2循环调度(守护进程crond
)
cron
语法格式:
分 时 日 月 星期 命令
存储位置:
/var/spool/cron
2.文本三剑客
1.grep
实用:查看配置文件时去除所有的注释和空行
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 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 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 `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
是分区交互时建立的编号)
建立挂载目录
将挂载目录与分区联系
如何解决内存空间不足呢?
命令:
命令会显示系统的内存总量,已使用的内存量,空网内任量和缓存区内存量等位息,如果要直看更洋细的内存信息,可以使用top
解决方案:
1.提出占用大量内存的进程;使用top查当前系统中正在运行的进程,并直找占用大量内存的进程,可以杀死这些进程,或者使用 书 renice
命令降低它们的优先级,以减少它们对内存的需求。
2.增加内存:如果系统的内存不足,可以增加内存来提高系统性能,这可能需要开级硬件或者将系统迁移到更强大的服务留上。
3.优化服务配置:对于某些服务,例如数据库服务或web
服务器,可以通过优化其配置文件来减少对内存的需求。