shell practice 05

#/bin/bash
# autuor: ChiWeiming
# version: v1
# date: 2024-03-27

<<COMMAND
针对某个目录,该目录下有数百个子目录,
比如 /data/att/chiweiming /data/att/linux
然后再深入一层是以日期命名的目录,比如 /data/att/linux/20240324,每天都会生成一个日期新目录,由于磁盘空间快满了,所以需要讲老文件(一年以前的)挪到另一个目录 /data1/att 下
示例: mv /data/att/linux/20240324 /data1/att/linux/20240324
挪完之后,还需要做软链接
ln -s /data1/att/linux/20240324 /data/att/linux/20240324
需要有日志信息
COMMAND

function main() {
  cd data/att
  for dir in $(ls)  
  do
    for subdir in $(find ${dir} -maxdepth 1 -type d)
    do
      rsync -aR ${subdir}/ /tmp/att/
      if (( $? == 0 )); then
        rm -rf ${subdir}
        echo "${subdir} move successful"
        ln -s /tmp/att/${subdir} data/att/${subdir} && echo "software link create successful"
        echo ""
      fi
    done
  done
}

main &> /tmp/move_old_data_$(date +%F).log
posted @ 2024-04-12 08:26  一转身已万水千山  阅读(1)  评论(0编辑  收藏  举报