purekid / icbackup
Increate backup script
Requires
- monolog/monolog: ~1.6
This package is auto-updated.
Last update: 2024-10-08 17:18:19 UTC
README
PHP Increasement Backup 目录增量打包备份
###Features 功能点
- 可配置
- 增量备份
- 自动ZIP打包
- 多线程支持
- 支持多远端SCP同步
###Usage 用法
$ ./bin/icbackup sample/config.json
###Config 配置文件 (sample.json)
{ "log" : "/var/www/backup/backup.log", "tasks":[ { "enable" : true, "multiThread" : false, "onlySaveHistory": false, "threadCount" : 1, "ignoreZipTimestampBefore": 1412995946, "name" : "client", "dir" : "/var/www/files/a", "storage" : "/var/www/backup", "scp":[ { "host" : "192.168.1.2", "port" : "22", "user" : "michael", "path" : "/home/michael/backup", "password" : "123456" }, { "host" : "192.168.1.3", "port" : "22", "user" : "michael", "path" : "/home/michael/backup", "password" : "123456" } ], "ignoreUnmodifiedDir":[ "formQR", "image", "contactQR", "html" ] } ] }
待备份的目录a及其结构
--a
└--b
└--c
1.假设首次运行脚本时间为2014年10月1日,生成history并打包整个a目录,并生成a-2014-10-1-0-0.zip,因为第一次运行,目录是全增量,结构与初始目录完全相同:
--a
└--b
└--c
2.2014年10月1日-2日之间,目录中有多了几个文件,结构如下
--a
└--b
└--d
└--c
└--e
3.此时于3日凌晨再次执行脚本,会扫描相对于上次执行脚本发生的目录变化,生成增量ZIP包,a-2014-10-3-0-0.zip内文件结构如下:
--a
└--b
└--d
└--e
4.若config中配置有SCP项,打包后会自动SCP到远端目录保存
5.支持多线程,需要PHP支持pthreads扩展,同时讲配置中 'multiThread'设为true,'threadCount'设为使用的线程数量即可
6.配置中 'ignoreUnmodifiedDir' 是很重要的一项,对性能提升很关键,举个栗子:
对于一般的程序类项目,附件目录的结构一般是一致的,譬如最后一级目录存放图片的目录都名为images,存放文档的都名为docs
--a
└--b
└--images
└--docs
└--c
└--images
└--docs
└--e
└--images
└--docs
此时你可以如此配置: "ignoreUnmodifiedDir" : ["images","docs"] ,这样的作用就是当发现名为images或docs的目录本身未发生变化(文件夹的ftime时间),不会进入目录里去递归扫描,对于性能会有很大提升。