【Linux】rsync同步文件 & 程序自启动

时间:2023-03-09 01:01:37
【Linux】rsync同步文件 & 程序自启动
  • rsync使用

  1. 为什么使用rsync?

rsync解决linux系统下文件同步时, 增量同步问题.

使用场景: 线上需要定时备份数据文件(视频资源), 使用rsync完成每天的增量备份.  

参见: http://roclinux.cn/?p=2643

http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/

2. rsync使用遇到的问题

  线上数据文件全量备份, 32T数据, 主要是视频文件, 数据量较大, 按照100M/s, 需要3天+, 启动后在执行3h左右时出错, 备份程序退出.日志如下:

      rsync error: received SIGINT, SIGTERM, or SIGHUP (code ) at rsync.c() [sender=3.0.]
rsync: writefd_unbuffered failed to write bytes to socket [generator]: Broken pipe ()

:可能是数据量较多, 导致备份出错??? 还未找到原因.

  3. rsync删除大量文件应用(于rm -rf等的比较)

参见: linux删除大量文件的6种方法

经测试, rsync与 rm-rf dir/ 时间上并无太大区别.

  • linux 积累

1. 后台执行程序

  让程序忽略hangup信号 nohup %cmd% &

  让程序的父进程是init进程,而不是当前终端的进程 setsid %cmd%

参见:

如何在Linux后台运行一个程序

linux命令后台运行

http://segmentfault.com/a/1190000002803307

2.查看文件的创建日期(stat)

使用ls -l 显示的是文件的最后修改时间; 如何查看文件的创建时间? 参见:

在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间

说明:Access访问时间。Modify修改时间。Change状态改动时间。可以stat *查看这个目录所有文件的状态。

关于stat命令:

[root@streamserver ~]# stat .txt
File: `.txt'
Size: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::31.845546973 +
Modify: -- ::29.555491379 +
Change: -- ::29.555491379 +

经centOS4.4.7 验证: accessTime即为文件的创建时间(文章提到的more,less查看文件并不修改此时间)

3. 统计文件个数

ls -l|wc -l

包括子文件夹: ls -lR|wc -l

参见:sina blog:Linux统计某文件夹下文件、文件夹的个数