一、文件同步工具 rsync:“智能复制” 文件(只传变化的部分)
实际工作中,经常需要 “把本地文件同步到服务器”“备份文件到移动硬盘”—— 用cp命令每次都复制全部内容(慢且费空间),而rsync是 “智能复制”:只传输 “变化的部分”(比如文件改了一行,只传这一行),速度快、省流量,像 “微信传文件,只传新内容”。
1. rsync 的核心优势(用例子秒懂)
- 你有一个 1GB 的
backup.tar.gz文件,今天修改了其中 10MB 的内容:- 用
cp复制:会重新传 1GB,慢; - 用
rsync复制:只传变化的 10MB,快很多。
- 用
2. 实操:用 rsync 同步本地文件(先练手,再学远程同步)
步骤 1:安装 rsync(大部分系统默认已安装,没装的话)
bash
sudo apt install rsync # 输入密码后按y
步骤 2:创建 “源目录” 和 “目标目录”(模拟同步场景)
bash
cd ~/linux_study
# 创建源目录(要同步的内容)
mkdir source_dir
echo "这是源文件1" > source_dir/file1.txt
echo "这是源文件2" > source_dir/file2.txt
# 创建目标目录(同步到这里)
mkdir target_dir
步骤 3:基础同步:把源目录内容同步到目标目录
bash
# 命令格式:rsync -av 源路径 目标路径
rsync -av source_dir/ target_dir/
- 选项解释:
-a:“归档模式”(递归同步 + 保留权限 / 时间等属性,最常用);-v:“详细输出”(显示同步了哪些文件,心里有数);source_dir/:源目录后加/表示 “同步目录里的内容”(不加/会同步目录本身);target_dir/:目标目录(不存在会自动创建)。
效果:终端会显示 “同步了 file1.txt 和 file2.txt”,查看目标目录:
bash
ls target_dir/ # 会看到和source_dir一样的文件
4. 进阶:同步 “变化的文件”(体现 rsync 的智能)
步骤 1:修改源目录的一个文件(模拟 “文件更新”)
bash
echo "给file1.txt加一行新内容" >> source_dir/file1.txt # 修改file1.txt
步骤 2:再次执行 rsync 同步
bash
rsync -av source_dir/ target_dir/
效果:终端会显示 “只同步了 file1.txt”(file2.txt 没变化,不传输),验证目标目录的 file1.txt:
bash
cat target_dir/file1.txt # 会包含新增的内容,说明同步成功
5. 扩展:同步文件到远程服务器(工作常用,用 SSH 通道)
如果有另一台服务器(或虚拟机),可以用 rsync 通过 SSH 同步(类似远程复制,但更智能)。
命令格式(替换成远程服务器的 IP 和用户名):
bash
rsync -av -e ssh source_dir/ 远程用户名@远程IP:目标路径
- 举例:把本地
source_dir同步到远程服务器(IP192.168.1.101,用户user)的/home/user/backup目录:bash
rsync -av -e ssh source_dir/ user@192.168.1.101:/home/user/backup- 首次同步会提示 “是否继续连接”,输入
yes,再输远程服务器密码,即可开始同步(只传变化的部分)。
- 首次同步会提示 “是否继续连接”,输入
二、nginx 日志轮转配置:给 “自己部署的服务” 管理日志
前 14 天学了系统默认日志的轮转,今天针对 “自己部署的 nginx 服务” 配置日志轮转(nginx 会生成access.log(访问日志)和error.log(错误日志),不管理会越来越大)。
1. nginx 日志的默认位置
nginx 的日志默认存在/var/log/nginx/目录:
bash
ls /var/log/nginx/ # 会看到access.log和error.log
2. 实操:给 nginx 日志配置自定义轮转规则
系统默认可能已有 nginx 日志的轮转配置,但我们可以自定义(比如 “每天轮转一次”“保留 10 份旧日志”)。
步骤 1:创建 nginx 日志轮转配置文件
bash
sudo nano /etc/logrotate.d/nginx_custom # 文件名随便起,建议包含nginx
步骤 2:写入轮转规则(复制粘贴,按注释修改)
bash
# 配置nginx的访问日志和错误日志
/var/log/nginx/access.log /var/log/nginx/error.log {
daily # 每天轮转一次(也可以写weekly表示每周)
rotate 10 # 保留10份旧日志,第11份自动删除
compress # 旧日志压缩成.gz(省空间)
delaycompress # 延迟压缩(当前轮转的日志先不压缩,下次轮转再压缩,方便临时查看)
missingok # 日志文件不存在也不报错(避免误删后轮转失败)
notifempty # 日志为空时不轮转
create 0640 www-data adm # 轮转后新建的日志文件:权限0640,所有者www-data(nginx运行用户),所属组adm
sharedscripts # 所有日志轮转完成后,只执行一次postrotate脚本(下面的重启命令)
postrotate # 轮转后需要执行的命令(nginx需要重新打开日志文件)
if [ -f /var/run/nginx.pid ]; then # 如果nginx在运行
kill -USR1 `cat /var/run/nginx.pid` # 发送信号让nginx重新加载日志(不重启服务,平滑切换)
fi
endscript
}
步骤 3:测试轮转规则是否生效
bash
sudo logrotate -f /etc/logrotate.d/nginx_custom # -f强制轮转(测试用)
步骤 4:验证效果
查看/var/log/nginx/目录:
bash
ls /var/log/nginx/
会看到:
- 原来的
access.log变成access.log.1(刚轮转的日志); - 生成新的空
access.log(nginx 继续写入新日志); - 之前的旧日志(如果有)会被压缩成
access.log.2.gz等(按配置保留 10 份)。
三、可视化系统监控工具 glances:“一眼看透” 系统状态(比 top 更友好)
之前学的top、vmstat都是纯文字界面,数据分散 ——glances是一个 “可视化监控工具”,用颜色和图表直观显示 CPU、内存、磁盘、网络的实时状态,像 “系统的仪表盘”,小白也能快速看懂 “哪里出了问题”。
1. glances 的优势(用图理解,实际是文字彩色界面)
- 屏幕分区域显示:顶部 CPU,中间内存,底部磁盘和网络;
- 颜色预警:正常是绿色,偏高是黄色,异常是红色(比如 CPU 占用 > 90% 会变红);
- 支持鼠标操作(点击表头可排序),比纯命令更易上手。
2. 实操:安装并使用 glances
步骤 1:安装 glances
bash
sudo apt update
sudo apt install glances # 输入密码后按y安装
步骤 2:启动 glances,看懂界面
bash
glances # 直接输入命令启动
界面关键区域解读(小白只需看这 4 处):
-
CPU 区域(顶部):
- 显示每个核心的占用率(比如 4 核 CPU 会有 4 行);
- 颜色:绿色(<50%)→ 黄色(50%-80%)→ 红色(>80%)。
-
内存区域(CPU 下方):
Mem:物理内存使用情况(已用 / 总容量);Swap:交换分区使用情况(类似 Windows 的虚拟内存,红色表示快满了)。
-
磁盘区域(中间偏下):
- 显示磁盘读写速度(
Read/Write),红色表示读写频繁(可能卡)。
- 显示磁盘读写速度(
-
网络区域(底部):
- 显示上传(
Tx)和下载(Rx)速度,红色表示网络繁忙。
- 显示上传(
常用操作:
- 按
q退出监控; - 按
m:按内存占用排序进程; - 按
c:按 CPU 占用排序进程; - 鼠标点击某列(如
CPU%):按该列排序。
今日必练实操清单(跟着做,20 分钟搞定)
-
rsync 同步练习:
- 在
source_dir里新增一个file3.txt,执行rsync -av source_dir/ target_dir/,验证只同步了新文件; - 修改
file2.txt(加一行内容),再次同步,确认只传修改的部分(终端显示 “file2.txt” 被同步)。
- 在
-
nginx 日志轮转:
- 按步骤配置
nginx_custom轮转规则,执行sudo logrotate -f后,查看/var/log/nginx/是否生成access.log.1。
- 按步骤配置
-
glances 监控:
- 启动
glances,观察自己的系统:CPU 占用最高的进程是什么?内存用了多少?网络是否有数据传输?按q退出后,记录下这些信息。
- 启动
今日总结(3 句话记住核心)
- rsync 同步:
rsync -av 源路径 目标路径→ 智能复制(只传变化的部分),同步文件到服务器 / 备份时必用,比cp快 10 倍。 - nginx 日志轮转:在
/etc/logrotate.d/写配置,定义 “轮转周期(daily/weekly)、保留份数、压缩”,最后加postrotate让 nginx 重新加载日志。 - glances 监控:
glances→ 可视化看 CPU / 内存 / 磁盘 / 网络,颜色预警(红 = 异常),比top更直观,排查卡慢问题时先打开它。


被折叠的 条评论
为什么被折叠?



