一,需求
1,大量图片需要做异地灾备,大约有上百万张图片,而且还会往上增加,每张图片大小在5M-10M左右;
2,环境说明:服务器是群辉存储,操作系统功能受限制,跟centos系统使用有诸多不同;
二,实施方案
1,设置crontab任务
#backup data to Aliyun OSS
30 00 * * * root /bin/bash /volume1/scripts/findWithOSS_new.sh 5 #这里的数字5表示启用5个python上传图片的后台进程
50 00 * * * root source /etc/profile && /bin/bash /volume1/scripts/backupToOSScrontab_new.sh
2,shell+python
findWithOSS_new.sh:查找前一天00:00-24:00变动(包括新增和修改)的图片列表;本来考虑过使用inotify+python,但经过测试发现,群辉存储操作系统上没法用,然后改成了find命令来查找;
backupToOSScrontab_new.sh:图片上传进程实现多进程;
backupToOSS_new.py:图片上传脚本,基于阿里云提供的oss操作python的模块;
3,python版本:2.7.3
三,脚本代码
1,脚本findWithOSS_new.sh:
#!/bin/bash
#Filename: findWithOSS_new.sh
#Author: XXXXXX
set -m
monitoredDir='/volume1/存档/[存档]2018新'
outputDir='/volume1/scripts/datadir'
osslogDir='/volume1/scripts/osslogs'
dataFile=fileli