shell文件移动脚本
#!/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 |

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CentOS自动删除n天前日志
linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧。 1.删除文件命令: find对应目录-mtime+天数-name"文件名"-execrm-rf{}\; 实例命令: find/opt/soft/log/-mtime+30-name"*.log"-execrm-rf{}\; 说明: 将/opt/soft/log/目录下所有30天前带".log"的文件删除。具体参数说明如下: find:linux的查找命令,用户查找指定条件的文件; /opt/soft/log/:想要进行清理的任意目录; -mtime:标准语句写法; +30:查找30天前的文件,这里用数字代表天数; "*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三; -exec:固定写法; rm-rf:强制删除文...
- 下一篇
Linux系统下常见的Xshell运行命令
最近接触到了Xshell这个软件,使用这个软件我们来进行连接Linux系统,进去之后我们可能会两眼一抹黑,小编就带大家来学些常见的shell命令。 首先我们要跟大家从最简单的聊起,我们进入Xshell的界面之后连接上Linux服务器,刚进去的时候我们是不知道我们有哪些文件的,这个时候我们可以使用ls命令来显示有哪些文件,或者使用ls -l,最简单的是ll。ls命令会把文件横向显示,看着不舒服,ll和ls -l是一样的效果,建议使用ll,因为它最简单 我们已经知道文件有哪些后需要知道如何进入我们想要进入的文件,在windows这种图形化的系统下我们可以使用双击这种方式打开我们需要打开的文件,在Xshell中我们需要使用的是:cd 命令,我们进入之后几面显示如下,这时默认是在根节点root下面: 假如我们现在需要进入的是usr文件的local文件中我们就需要使用:cd /usr/local,来进入,这个时候我们就显示已经进入了local这个文件下面,需要注意的是在root根目录下进入其他文件时需要在最前面加上斜线“/”,在其他任何二级甚至多级目录下都是可以不加直接进入的。 有进入同样就有返...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker快速安装Oracle11G,搭建oracle11g学习环境