文件移动脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件移动脚本相关的知识,希望对你有一定的参考价值。
脚本功能:将指定目录多少天前的文件移动到目标目录并保持结构不变
应用场景:用于移走服务器中无需保留的老旧数据(笔者是ftp服务器环境)
使用说明:修改脚本中的源目录和目标目录且修改移动多少天前的数据
脚本代码:
#!/bin/bash wdir="/ftp" #源目录 bdir="/mvbackup/ftp" #目标目录 fl="/tmp/filelist" okl="/tmp/oklist" erl="/tmp/errlist" dl="/tmp/dirlist" mvlog="/var/log/mvfile.log" mdlog="/var/log/mkdir.log" #enter working(source) director cd $wdir #create source file list if [ -f $fl ]; then rm -f $fl fi find -mtime +300 -type f | grep -v "\/\."> $fl # ^300天前的数据 #filter source file list if [ -f $okl ]; then rm -f $okl fi if [ -f $erl ]; then rm -f $erl fi if [ ! -f $fl ]; then echo stop:1 exit 1 fi oldIFS=$IFS IFS=$‘\n‘ for i in $(cat $fl) do if [ -f $i ]; then echo "$i" >> $okl else echo "$i" >> $erl fi done IFS=$oldIFS #create traget director list if [ -f $dl ]; then rm -f $dl fi if [ ! -f $okl ]; then echo stop:2 exit 2 fi cat $okl | awk -F‘/‘ ‘{$1="";NF-=1;OFS="/";print}‘ | sort -u > $dl #create traget director if [ ! -f $dl ]; then echo stop:3 exit 3 fi oldIFS=$IFS IFS=$‘\n‘ for i in $(cat $dl) do if [ ! -d "$bdir$i" ]; then mkdir -p "$bdir$i" if [ ! $? = 0 ]; then echo "$bdir$i" >> $mdlog fi #echo $bdir$i fi done IFS=$oldIFS #move file to traget folder if [ ! -f $okl ]; then echo stop:4 exit 4 fi oldIFS=$IFS IFS=$‘\n‘ for i in $(cat $okl) do if [ -f "$i" ]; then j="$bdir$(echo $i | awk -F‘/‘ ‘{$1="";NF-=1;OFS="/";print}‘)" fi if [ -d "$j" ]; then echo s:"$i" echo d:"$j" mv -f "$i" "$j" if [ ! $? = 0 ]; then echo "$i" >> $mvlog fi fi done IFS=$oldIFS
本文出自 “老谭linux集群博客” 博客,请务必保留此出处http://cmdschool.blog.51cto.com/2420395/1843962
以上是关于文件移动脚本的主要内容,如果未能解决你的问题,请参考以下文章
如何将 View 类中的代码片段移动到 OnAppearing() 方法?
npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途