1. 程式人生 > 其它 >shell之for+if巢狀迴圈結構

shell之for+if巢狀迴圈結構

shell之for+if巢狀迴圈結構

學習Python之後,對shell 的for和if迴圈老是混淆,編寫shell指令碼加深鞏固一下

主要實現兩個功能:建立批量目錄然後根據時間在每個目錄建立年月日日誌檔案,根據需求刪除三個月前的日誌檔案

批量建立目錄和日誌檔案

#!/bin/bash
cd /var/log/cdmone  && mkdir -p bmr   dt  server  hcs  smartx     hcs  storage  winstack

dir=$(ls /var/log/cdmone)
for i in ${dir};do
    for j in {01..30};do
#touch /var/log/cdmone/${i}/`date +'%Y-%m'-${j}.log` for x in {01..12};do touch /var/log/cdmone/${i}/`date +%Y-${x}-${j}.log` done done done

#ls
/var/log/cdmone
bmr   dt  server  hcs  smartx     hcs  storage  winstack

刪除指定日期的日誌檔案

這裡沒考慮天數(30,31),而是按照月份進行日誌處理刪除,保留當前日期三個月內的日誌

#!/bin/bash
cd 
/var/log/cdmone/wise Month=$(date +'%Y-%m-%d'|awk -F[-] '{print $2}') file=$(echo "${Month} - 4" |bc) if [ ${file} -eq 0 ];then file=01 elif [ ${file} -gt 0 ];then file=0`echo "${file} + 1" |bc` elif [ ${file} -lt 0 ];then file=$( echo "${file} + 15 - 2" |bc) fi logfile=$(date +%Y-${file}-*.log) find
/var/log/cdmone/wise -type f -name ${logfile} |xargs rm -f

驗證

# date +'%Y%m%d'

#bash  rm_file.sh
#find . -type f -name  2022-02-*
./winstack/2022-02-13.log

#調整系統時間進行驗證
# date -s '-30 day'
# date +'%Y%m%d'
#bash  rm_file.sh
#find . -type f -name  2022-01-*