【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文件中。
相关推荐
傻傻虎虎1 小时前
【Docker】常用帮忙、镜像、容器、其他命令合集(2)
运维·docker·容器
ZERO_pan2 小时前
服务器装机遇到的问题
运维·服务器
逆小舟2 小时前
【Linux】人事档案——用户及组管理
linux·c++
青草地溪水旁2 小时前
pthread_mutex_lock函数深度解析
linux·多线程·pthread
l1t2 小时前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb
杀气丶2 小时前
Linux下运行芙蕾雅天堂2【俄文简译L2FATER】
运维·服务器·天堂2·l2fater·l2fater.cn
喵手2 小时前
玩转Java网络编程:基于Socket的服务器和客户端开发!
java·服务器·网络
太空的旅行者3 小时前
告别双系统——WSL2+UBUNTU在WIN上畅游LINUX
linux·运维·ubuntu
九章云极AladdinEdu4 小时前
超参数自动化调优指南:Optuna vs. Ray Tune 对比评测
运维·人工智能·深度学习·ai·自动化·gpu算力
人工智能训练师5 小时前
Ubuntu22.04如何安装新版本的Node.js和npm
linux·运维·前端·人工智能·ubuntu·npm·node.js