shell practice 05

一转身已万水千山發表於2024-04-12
#/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

相關文章