Shell脚本实现根据文件的修改时间来分类文件_linux shell

#!/bin/bash

# exctute
# ./mod.sh file_type input_folder output_folder
# ./mod.sh *.txt /tmp /data/

# paramater count
if [ ! $# -eq 3 ]; then
  echo "[ERROR] error paramater."
  exit
fi

# file type
file_type="${1}"

# input foloder
if [ -d "${2}" ]; then
  folder="${2}"
else
  echo "[ERROR] input folder is not exsit."
  exit
fi

# output folder
if [ -d "${3}" ]; then
  output="${3}"
else
  echo "[ERROR] output folder is not exsit."
  exit
fi

# search file
find ${folder} -name "${file_type}" | while read filename ;
do
  # file type
  file_type=`echo ${filename##*.}`

  # file size
  file_size=`stat "${filename}" | sed -n '2,1p' | awk '{print $2}' `
  # file modify time
  file_modify=`stat "${filename}" | sed -n '6,1p' | awk '{print $2, $3}' | sed -e 's/[-: ]//g' `

  # output folder
  path="${output}/${file_modify:0:6}"
  if [ ! -d "${path}" ]; then
    mkdir -p ${path}
    echo "folder(${path}) is created . "
  fi

  # new file full name
  new_file_name=`echo ${path}/${file_modify}_[${file_size}].${file_type}`

  if [ ! -f "${new_file_name}" ]; then
    mv "${filename}" "${new_file_name}"
  else
    echo "file(${new_file_name}) is exsit, can not be removed. "
  fi
done
echo "finished !"
exit

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, shell
, 脚本
, 修改时间
分类文件
linux shell脚本实现、shell脚本实现ssh登录、shell脚本实现scp、shell脚本实现自动化、shell脚本实现sftp,以便于您获取更多的相关知识。

时间: 2024-08-04 04:43:22

Shell脚本实现根据文件的修改时间来分类文件_linux shell的相关文章

shell脚本编程之for语句、if语句使用介绍_linux shell

上部: 面向过程:顺序执行选择执行: if, case循环执行: for, while, until 一.for语句   格式:     for 变量 in 列表;do        语句1;        语句2;        ...     done    例1.写一个脚本,添加10个用户,并让每个用户的密码同用户名] 复制代码 代码如下:        #!/bin/bash       for I in {1..10}; do          useradd user$I;     

shell脚本中echo显示内容带颜色的实现方法_linux shell

shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: 复制代码 代码如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: 复制代码 代码如下: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注: 1.字背景颜色和文字颜色之间是英文的"" 2.文字颜色后面有个m 3.字符串前后可

Shell脚本实现把进程负载均衡到多核CPU中_linux shell

有时候,由于架构设计或其他业务本身特点原因,导致有些应用使用CPU很不均衡,所以业务处理集中在一个CPU上,而其它CPU闲得在睡觉.这里有个简单的优化方案实现将各个线程绑定到到多个CPU,从而实现性能的提高. 虽然CPU是一个不错的思路,但是不是杀手锏,其性能能提高多少依赖于各个线程的性能分布是否均匀:所以最好的办法是优化你的程序架构. 在这里分享一个Shell脚本(脚本名为bindcpu2p.sh),通过该脚本可将该进程均匀负载到各个CPU上. 复制代码 代码如下: #!/bin/sh pid

使用shell脚本实现ping对应IP所对应的人名(推荐)_linux shell

#!/bin/bash a=(张三 李四 王五 赵六) for i in {0..3} do if ping -c 1 192.168.1. $((${i}+1)) >dev/null 2>&1;then echo $((${i}+1))"号"${a[${i}]}"在线" else echo $((${i}+1))"号"${a[${i}]}"离线" fi done 这串shell代码实现了ping 某个IP

用shell脚本在mysql表中批量插入数据的方法_linux shell

很多时候需要在mysql表中插入大量测试数据,下面分享一个用shell脚本通过while循环批量生成mysql测试数据的方法,你只需要根据你自己的表结构来生成sql语句即可. 复制代码 代码如下: #!/bin/bash i=1;MAX_INSERT_ROW_COUNT=$1;while [ $i -le $MAX_INSERT_ROW_COUNT ]do    mysql -uroot -proot afs -e "insert into afs_test (name,age,createTi

Shell脚本配合iptables屏蔽来自某个国家的IP访问_linux shell

星期六我们一位客户受到攻击,我们的网络监测显示有连续6小时的巨大异常流量,我们立即联系了客户,没有得到回应,我们修改和限制了客户的 VPS,使得个别 VPS 受攻击不会对整个服务器和其他 VPS 用户造成任何影响,我们一直保持这个 VPS 为开通状态(尽管一直受攻击),攻击又持续了24小时,星期天攻击仍在继续,我们忍无可忍,但是仍然无法联系到客户,我们向客户网站的另一负责人询问是否需要我们介入来帮助解决,这位负责人答应后我们立即投入到与 DDoS 的战斗中(我们动态扫描屏蔽坏 IP,现在客户网站

Shell脚本中的位置变量参数(特殊字符)实例讲解_linux shell

$# : 传递到脚本的参数个数 $* : 以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过 9个 $$ : 脚本运行的当前进程 ID号 $! : 后台运行的最后一个进程的进程 ID号 $@ : 与$#相同,但是使用时加引号,并在引号中返回每个参数 $- : 显示shell使用的当前选项,与 set命令功能相同 $? : 显示最后命令的退出状态. 0表示没有错误,其他任何值表明有错误. 复制代码 代码如下: #!/bin/sh #param.sh # $0:文件完整路径名

shell脚本监控系统负载、CPU和内存使用情况_linux shell

在没有nagios监控软件的情况下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统负载与CPU占用的使用情况. 一.安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具)  1.下载安装:  http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2?modtime=1217206451&big_mirror=0 复制代码 代码如下: # tar jxvf msmtp-1.4.16.tar.bz2

shell脚本转发80端口数据包给Node.js服务器_linux shell

注意:千万不要图省事直接使用ROOT用户运行Node.js服务!这将带来无法预计的安全问题!但是使用80端口作为HTTP默认端口这一习惯是从MS时代就延续至今的,怎么办呢?网上有人滔滔不绝地说用NginX做反向代理之类的,其实我觉得没必要这么夸张,只需要使用ROOT用户做一个普通端口与80端口的数据转发就好了,使用iptables语句如下: 复制代码 代码如下: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-po