1.防火墙黑白名单
黑名单(阻止特定IP访问)
如:
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
白名单(允许特定IP访问)
- 设置默认策略为拒绝所有入站连接:
sudo iptables -P INPUT DROP
2.允许特定IP地址的访问
例如:
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
保存与恢复
定义Unit File, CentOS 7,8 可以安装iptables-services
实现iptables.service
yum install iptables-services
iptables-save > /etc/sysconfig/iptables
iptables-restore < /etc/sysconfig/iptables
systemctl enable iptables.service
转发本地端口
[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
服务)
[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
实用:查看配置文件时去除所有的注释和空行
[root@localhost ~]# grep -Ev "^#|^$" /etc/ssh/sshd_config
2.sed
3.awk
3.shell脚本
练习题:
练习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守护进程+必备指令
守护进程可以理解为进程守护(进程的守护),是用于监控指定的进程,当发现目标进程工作异常时,可以对该目标进程进行控制。如关闭该进程,并重新启动该进程。 守护进程(守护者程序),目标进程(被守护进程)。 一个守护进程可以对多个目标进程进行守护
镜像指令:
搜索镜像:
docker search centos
下载镜像:
docker pull centos
查看镜像信息
docker images
命令来为本地镜像添加新的标签
docker tag centos:latest mycentos:latest
获取该镜像的详细信息
docker inspect centos:latest
镜像导入
docker save centos:latest > /opt/centos-1.tar.gz
导出
docker load < /opt/centos.tar.gz
删除镜像
docker rmi centos:latest
容器指令:
启动一个容器
docker run -it centos:latest bash
显示正在运行的容器
docker ps -a
指定端口映射
docker run -p 80:80 --name nginx nginx:latest
后台启动容器
docker run -d -P 80:80 --name nginx nginx:latest
终止、启动容器
docker stop 容器id
docker start 容器id
删除容器
docker rm -f 容器id
批量删除容器
docker rm -f `docker ps -a -q`
导入导出容器
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
空余)
fdisk /dev/sdb 进入fdisk分区交互
注意内存可以用G表示
分区完后建立文件系统(adb1
是分区交互时建立的编号)
mkfs.ext4 /dev/sdb1
建立挂载目录
mkdir /data1
将挂载目录与分区联系
mount /dev/sdb1 /data1
如何解决内存空间不足呢?
命令:
free -h
命令会显示系统的内存总量,已使用的内存量,空网内任量和缓存区内存量等位息,如果要直看更洋细的内存信息,可以使用top
解决方案: 1.提出占用大量内存的进程;使用top查当前系统中正在运行的进程,并直找占用大量内存的进程,可以杀死这些进程,或者使用 书 renice
命令降低它们的优先级,以减少它们对内存的需求。 2.增加内存:如果系统的内存不足,可以增加内存来提高系统性能,这可能需要开级硬件或者将系统迁移到更强大的服务留上。 3.优化服务配置:对于某些服务,例如数据库服务或web
服务器,可以通过优化其配置文件来减少对内存的需求。