【ubuntu20】--- 定时同步文件

  • 在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。
  • 而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。

【Linux命令】--- 多核压缩命令大全(加快压缩和解压)

开发环境

  • 开发环境:ubuntu20

一、rsync命令的常用选项

  • rsync命令的选项非常丰富,下面列出了一些常用的选项:

  • -a:归档模式,表示以递归方式传输文件,并保持文件的属性,如修改时间、访问权限、所有者等。这个选项是-rlptgoD的集合,其中r表示递归,l表示保持符号链接,p表示保持文件权限,t表示保持文件时间戳,g表示保持文件所属组,o表示保持文件所有者,D表示保持设备文件和特殊文件。

  • -v:详细模式,显示文件传输的详细信息。

  • -z:在传输过程中使用gzip压缩文件数据,有助于加快传输速度,特别是对于大文件或网络带宽有限的情况。

  • --progress:显示文件传输的进度信息。

  • --delete:删除目标目录中存在而源目录中不存在的文件,使目标目录成为源目录的镜像。

  • --exclude:排除与指定模式匹配的文件或目录。

二、安装rsync

shell 复制代码
sudo apt update
sudo apt install rsync

三、设置cron计划任务

编辑crontab文件以设置定时任务:

bash 复制代码
crontab -e

四、创建rsync命令

  • 根据实际需求,选择适合的选项来构建rsync命令。以下的示例,演示了如何将本地文件夹同步到远程服务器,并显示详细的传输进度信息:

示例1:同步本地文件夹到远程服务器

bash 复制代码
rsync -avz --progress /local/path/to/source/ username@remote_server:/path/on/server/ --delete

命令功能详解:

  • 归档模式 (-a):

    • 保持文件属性不变。
    • 允许递归复制整个目录结构。
  • 压缩传输 (-z):

    • 使用gzip压缩数据,减少传输量。
  • 显示进度 (--progress):

    • 提供实时的文件传输进度信息。
  • 镜像删除 (--delete):

    • 删除目标目录中源目录没有的文件,实现目录镜像。

示例2:定时同步文件夹(不使用镜像删除)

shell 复制代码
00 22 * * * rsync -av /tmp/history_log/ /root/history_file/

说明:

  • 该cron任务每晚10点执行。
  • 使用归档模式 (-a) 保持文件属性并递归复制。
  • 注意,未使用 --delete 选项,因此不会删除目标目录中额外的文件。

示例3:另一个定时同步示例(不使用镜像删除)

shell 复制代码
00 23 * * * rsync -av /home/share/project/ /root/project/

说明:

  • 该cron任务每晚11点执行。
  • 类似于示例2,它也使用归档模式 (-a) 进行递归复制,并保持文件属性。
  • 同样没有使用 --delete 选项,所以目标目录中额外的文件将保留。

五、重要提示

  • 在使用rsync命令时,请确保对源目录和目标目录具有适当的权限。
  • 根据具体需求调整rsync命令的选项。
  • 定期检查同步结果,以确保数据的完整性和准确性。

六、额外提示:

  • 日志记录:如果希望记录rsync的执行情况。可以将rsync的输出重定向到一个日志文件中,例如:
shell 复制代码
  0 2 * * * rsync -avz --progress /local/path/to/source/ username@remote_server:/path/on/server/ --delete > /var/log/rsync.log 2>&1
  • 这会将标准输出和标准错误都重定向到/var/log/rsync.log文件中。
相关推荐
Zach_yuan5 分钟前
深入浅出 JSONCpp
linux·服务器·网络·c++
AtoposのCX33012 分钟前
Docker运行hello-world镜像失败或超时
运维·docker
马猴烧酒.22 分钟前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库
北京迅为1 小时前
《【北京迅为】itop-3568开发板NPU使用手册》- 第 7章 使用RKNN-Toolkit-lite2
linux·人工智能·嵌入式·npu
Dragon~Snow1 小时前
Linux Centos9 安装 Elasticsearch
linux·elasticsearch·jenkins
熊延1 小时前
麒麟V10系统安装部署elasticsearch
linux·运维·服务器·elasticsearch·搜索引擎·全文检索
Jia ming1 小时前
跟踪器与事件使用举例
linux·事件·跟踪器
生活很暖很治愈2 小时前
Linux——基础IO&软硬链接
linux·ubuntu
2401_858936882 小时前
【Linux C 编程】标准 IO 详解与实战:从基础接口到文件操作实战
linux·c语言
Roc.Chang2 小时前
Ubuntu 下 VLC 无法启动(Segmentation fault)终极解决方案
linux·ubuntu·vlc·媒体播放