【一起学Linux】第十五天:用 rsync 同步文件、nginx 日志轮转配置、用 glances 监控系统(可视化)

一、文件同步工具 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 更友好)

之前学的topvmstat都是纯文字界面,数据分散 ——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 处)

  1. CPU 区域(顶部):

    • 显示每个核心的占用率(比如 4 核 CPU 会有 4 行);
    • 颜色:绿色(<50%)→ 黄色(50%-80%)→ 红色(>80%)。
  2. 内存区域(CPU 下方):

    • Mem:物理内存使用情况(已用 / 总容量);
    • Swap:交换分区使用情况(类似 Windows 的虚拟内存,红色表示快满了)。
  3. 磁盘区域(中间偏下):

    • 显示磁盘读写速度(Read/Write),红色表示读写频繁(可能卡)。
  4. 网络区域(底部):

    • 显示上传(Tx)和下载(Rx)速度,红色表示网络繁忙。

常用操作

  • q退出监控;
  • m:按内存占用排序进程;
  • c:按 CPU 占用排序进程;
  • 鼠标点击某列(如CPU%):按该列排序。

今日必练实操清单(跟着做,20 分钟搞定)

  1. rsync 同步练习

    • source_dir里新增一个file3.txt,执行rsync -av source_dir/ target_dir/,验证只同步了新文件;
    • 修改file2.txt(加一行内容),再次同步,确认只传修改的部分(终端显示 “file2.txt” 被同步)。
  2. nginx 日志轮转

    • 按步骤配置nginx_custom轮转规则,执行sudo logrotate -f后,查看/var/log/nginx/是否生成access.log.1
  3. glances 监控

    • 启动glances,观察自己的系统:CPU 占用最高的进程是什么?内存用了多少?网络是否有数据传输?按q退出后,记录下这些信息。

今日总结(3 句话记住核心)

  1. rsync 同步rsync -av 源路径 目标路径 → 智能复制(只传变化的部分),同步文件到服务器 / 备份时必用,比cp快 10 倍。
  2. nginx 日志轮转:在/etc/logrotate.d/写配置,定义 “轮转周期(daily/weekly)、保留份数、压缩”,最后加postrotate让 nginx 重新加载日志。
  3. glances 监控glances → 可视化看 CPU / 内存 / 磁盘 / 网络,颜色预警(红 = 异常),比top更直观,排查卡慢问题时先打开它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值