用shell如何高效批量备份目录下的图片

eyetoheart 2019-06-12 02:53:36
我写了一个脚本文件,需要备份某一目录下的所有图片文件,该目录下随时都有新图片文件产生,我的需求是:备份完一张图片就在原目录中删掉;
一下是我写的脚本的一部分:
cd $SOURCEDIR
find | sed '1d' > $SCRIPTDIR/filelist.txt
for i in `cat $SCRIPTDIR/filelist.txt`
do
if [ ! -d $i ]
then
echo "start backup $i to $BACKUPDIR/$SERVERNAME_ORCPICBAK_{$DATEDAY}.ZIP" >> $SCRIPTDIR/logs.log
zip $BACKUPDIR/${SERVERNAME}_ORCPICBAK_${DATEDAY}.ZIP $i >> $SCRIPTDIR/logs.log 2>&1
if [ $? -eq 0 ]
then
echo "backup $i Success,start delete $i from $SOURCEDIR" >> $SCRIPTDIR/logs.log
rm -rf $i
else
echo "file $i backup fail!!!" >> $SCRIPTDIR/logs.log
fi
fi
done
上面脚本在执行那刻将原目录下的图片文件存到临时文件filelist.txt中,我只对filelist.txt保存的文件进行备份、删除,从而不影响新增图片文件。

如果那个$SOURCEDIR目录下存在数千张图片时,这个备份脚本效率非常低,做完一次备份需要好几个小时,全耽搁在一张张图片的备份上了。请问有什么方法满足我的需求的前提下提高效率?
...全文
149 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
eyetoheart 2019-06-13
  • 打赏
  • 举报
回复
有好方法了:先压缩,然后再跟进压缩包里的文件删除原目录的文件: find ./ -name "*.jpg" | xargs zip temp.ZIP 然后根据temp.ZIP文件的内容去原目录删除备份过的图片文件,效率大增
eyetoheart 2019-06-12
  • 打赏
  • 举报
回复
我试过,将zip备份修改成tar也差不多一样的效率,太低效了!
,Linux运维安装工具及脚本,K8S构建,各个环境构建部署等,包括不限于于shell、python,运维脚本、docker脚本、各种工具库,收集各类运维常用工具脚本,实现快速安装nginx、mysql、pg、apache、php、redis、tomcat 运维(Operations & Maintenance,简称O&M)是IT行业中至关重要的角色,负责确保信息系统和服务的高效稳定运行。运维工程师的工作涵盖了系统架构搭建、维护、优化,以及故障排查与解决等多个方面。 首先,运维工作包括基础设施的部署与配置,如服务器、网络设备、存储设备等硬件资源的安装调试与监控,同时还需要安装操作系统、数据库和其他应用软件,并进行性能调优以满足业务需求。 其次,运维人员承担着日常监控与安全管理任务,他们借助各类工具持续监控系统的运行状态,及时发现并处理异常情况,预防服务中断。此外,运维还包括制定备份恢复策略,确保数据的安全性和可用性,以及实施网络安全策略,防止黑客攻击、病毒感染等安全风险。 再者,运维团队还需参与系统升级、扩容等工作,以应对业务增长带来的挑战。他们通过对资源的合理调度与规划,保证系统性能和用户体验的不断提升。 最后,运维工程师还涉及自动化运维体系的建设和完善,通过脚本编写、配置管理工具的运用,实现批量部署、自动巡检、故障自愈等功能,从而提升运维效率,减轻人工压力。 总之,运维工作的核心目标在于保障业务的连续性和稳定性,为用户提供优质、高效的服务环境,同时紧跟技术发展步伐,不断推动运维工作的智能化、自动化进程。

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧