1. 程式人生 > >shell日常腳本

shell日常腳本

計劃 小時 沒有後綴名 -type 文件名 AI fin AS !=

1、用一條命令找出/etc/目錄下過去24小時內被修改過的文件,後綴名是.log的文件並刪除。
find /etc -type f -mtime -1 -name "
log*" -exec rm -rf {} \;

2、從test.log文件中找出包含“Not”、“Fail”或“Error”,同時不包含”Info”字段的行,然後找出以冒號“:”分割的最後一列字段。
cat test.log |grep -e "Not" -e "Fail" -e "Error" |grep -v "Info"|awk -F : ‘{print $NF}‘

3、目錄/test/下有100個普通文件,有的文件有後綴名.txt,有的則沒有後綴名,寫一個腳本,將/test/目錄下所有文件沒有後綴名的文件都重命名為以.txt結尾。

#!/bin/bash
cd /test/
for aa in find . - type f ! -name "*.txt"
do
mv $aa $aa.txt
done

4、寫一個計劃任務腳本,每周一淩晨01:30將/opt/目錄下的所有內容打包備份至/data/backup/目錄下,且文件名命名形式為yyyymmdd-opt,yyyy為年,mm為月,dd為日。

crontab –e
30 1 1 /home/aa.sh >/dev/null 2>&1

#!/bin/bash
#/home/aa.sh
time=date +%Y%m%d
tar czvf $time-opt /opt/
mv $time-opt /data/backup/

5、用一條命令統計出apache訪問日誌access.log中每個IP地址訪問的次數,按照訪問量列出前10名。
日誌格式樣例如下:
192.168.1.10 - - [24/Jul/2017:23:55:55 +0800] “GET /HTTP/1.1” 200 19

more access_log | awk ‘{print $1}‘ | uniq -c | sort -rn | head -10

6、打印出test.conf文件中不以”#”開頭,且不是空行的內容。

sed -e "/^#/d" test.conf | awk ‘{if (length !=0) print $0}‘

7、寫一個計劃任務,每2小時執行一次/opt/app/test.sh。
crontab –e

  • /2 /opt/app/test.sh >/dev/null 2>&1

shell日常腳本