shellscript-5-定时备份一年前的文件,并创建软连接
  UReG4QD8JsyE 2023年11月24日 18 0

shellscript-5-定时备份一年前的文件,并创建软连接

脚本内容

#!/bin/bash

# author: yolo

# 有一个目录/data/file/ 目录下有数百个子目录
# 比如:/data/file/photo/     /data/file/mv/
# 再下一级以日期命名目录 /data/file/photo/20231101/
# 因为每天会生成一个新目录,由于磁盘 /data/ 快满了
# 需要将旧文件,一年以前的移动到目录 /data1/file/
# 示例: mv /data/file/photo/20220701 /data1/file/photo/20220701
# 移动后做软连接
# 示例: ln -s /data1/file/photo/20220701 /data/file/photo/20220701
# 写一个脚本 /data/file/ 目录下 所有都按照这样操作
# 脚本每天01:00 执行一次
# 注意:确保老文件移动成功才能做软连接,需要有日志

# 定义函数,调用函数记录日志
main(){
	cd /data/file/
	# 遍历
	for dir in `ls`
	do
		echo $dir
	# 遍历二层目录
	# -maxdepth 1 当前目录 -type d 目录 -mtime +365 一年以前
		for dir2 in `find $dir -maxdepth 1 -type d -mtime +365`
		do
			echo $dir2
			# 移动文件 -a 使用递归 -R 使用相对路径
			rsync -aR $dir2/ /data1/file/
			if [ $? -eq 0 ]
			then
				# 如果同步成功, 删除原数据,做软连接
				rm -rf $dir2
				echo '/data/file/$dir2 移动成功'
				# 软连接
				ln -s /data1/file/$dir2 /data/file/$dir2 && echo "/data/file/$dir2 软连接创建成功"
			else
				echo "/data/file/$dir2 移动没成功"
			fi
		done
		

	done
}

# 调用函数,并输出日志,日志每天一个文件

main &> /tmp/move_log_`date +%F`.log

# 1 函数方式定义日志用法
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月24日 0

暂无评论

UReG4QD8JsyE