rsync 管理软件

公司内网一台服务器需要向外网服务器上传文件,为方便操作,所以做了个用PHP和SHELL管理RSYNC同步上传的东西

用户选择本地目录中需要上传的文件或文件夹,点击“传送”,然后PHP脚本将这些文件保存入库,将其状态改为“等待”,之后执行SHELL脚本,该脚本将连接数据库,查询状态为“等待”的文件后,依次执行RSYNC,并将其状态改为“传送中”,待传送完成后将其状态改为“完成”,并且该脚本开始时还将其本身的进程ID等信息存入库中,并将该条记录状态改为“执行中”,待该SHELL执行到最后将其状态改为“完成”

由于用户在传送过程中,可能“传送中”的文件需要更新,或继续添加传送文件,所以用户可以点击“中断传送”,然后将执行中断传送的SHELL脚本,该脚本将查询出当前“执行中”的脚本进程号,并且根据进程号,KILL掉该进程及其派生出来的所有子进程,并将该脚本进程记录修改为“用户中止”,以及将“传送中”文件的状态修改为“传送中止”(方便再次传送时优先上传,以及删除时执行删除脚本),“等待”的文件修改为“等待中止”。

用户在中止上传过程中,可能正好需要更新当前“传送中”的文件,则可以删除该文件,并且重新选择上传,删除时,将执行一个删除脚本,直接将远程服务器的该文件删除掉(这里由于RSYNC的remove-sent-files需要同步本地,则直接采用rm操作),再将库中该条记录删除掉,而“等待中止”的文件删除直接将库中记录删除。

 

 

 

 

 

转载于:https://my.oschina.net/xu01/blog/29495

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值