【shell 指令碼】刪除/var/log 下的日誌
開始學習shell 指令碼的編寫了,寫了一個刪除日誌的指令碼。
root@client.example.com # more test.sh
#!/bin/bash
# cleanup /var/log/message
LOG_DIR=/var/log
ROOT_DID=0
LINES=50
E_XCD=66
E_NOTROOT=67
if [[ "$UID" -ne "$ROOT_UID" ]]
then
echo "Must be root to run this script."
exit $E_NOTROOT
fi
if [ -n "$1" ]
then
lines=$1
else
lines=$LINES
fi
# E_WRONGARGS =65
# case "$1" in
# "" ) lines=50;;
# *[!0-9]*) echo "Usage: `basename $0` file-to-cleanup ";;
# * ) lines=$1;;
# esac
#cd $LOG_DIR
#if [ "$PWD" !="$LOG_DIR" ]
# then
# echo "Cant't change to $LOG_DIR."
# exit $E_XCE
#fi
cd /var/log || {
echo "Cant'change to necessary didrectory." >&2
exit $E_XCD;
}
tail -$lines messages > mesg.tmp
mv mesg.tmp messages
cat /dev/null > wtwp
echo "Logs cleaned up"
exit 0
"test.sh" 59L, 792C written
測試:
root@client.example.com # wc -l messages
43 messages
root@client.example.com # sh test.sh 20
Logs cleaned up
root@client.example.com # wc -l messages
20 messages
root@client.example.com #
root@client.example.com # more test.sh
#!/bin/bash
# cleanup /var/log/message
LOG_DIR=/var/log
ROOT_DID=0
LINES=50
E_XCD=66
E_NOTROOT=67
if [[ "$UID" -ne "$ROOT_UID" ]]
then
echo "Must be root to run this script."
exit $E_NOTROOT
fi
if [ -n "$1" ]
then
lines=$1
else
lines=$LINES
fi
# E_WRONGARGS =65
# case "$1" in
# "" ) lines=50;;
# *[!0-9]*) echo "Usage: `basename $0` file-to-cleanup ";;
# * ) lines=$1;;
# esac
#cd $LOG_DIR
#if [ "$PWD" !="$LOG_DIR" ]
# then
# echo "Cant't change to $LOG_DIR."
# exit $E_XCE
#fi
cd /var/log || {
echo "Cant'change to necessary didrectory." >&2
exit $E_XCD;
}
tail -$lines messages > mesg.tmp
mv mesg.tmp messages
cat /dev/null > wtwp
echo "Logs cleaned up"
exit 0
"test.sh" 59L, 792C written
測試:
root@client.example.com # wc -l messages
43 messages
root@client.example.com # sh test.sh 20
Logs cleaned up
root@client.example.com # wc -l messages
20 messages
root@client.example.com #
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-689292/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 日誌刪除指令碼指令碼
- 如何安全刪除mysql下的binlog日誌薦MySql
- mysql binlog日誌刪除MySql
- 【shell】日誌切割指令碼指令碼
- shell指令碼案例分享 - 業務系統日誌自定義保留或刪除需求指令碼
- DATAGUARD_standby刪除歸檔日誌的指令碼指令碼
- 刪除oracle下apache下的日誌OracleApache
- DataGuard已應用歸檔日誌刪除指令碼指令碼
- 一個刪除重做日誌檔案的參考指令碼指令碼
- MySQL 正確刪除 binlog 日誌MySql
- 【REDO】刪除REDO LOG重做日誌組後需要手工刪除對應的日誌檔案
- 【工具】批量刪除binlog 的指令碼指令碼
- window下刪除過舊的日誌檔案指令碼(如jboss的日誌檔案 資料庫的trace檔案)指令碼資料庫
- dg刪除備庫已經應用的歸檔日誌指令碼指令碼
- MySQL 批量更新、刪除資料shell指令碼MySql指令碼
- 通過shell指令碼新增備庫日誌指令碼
- oracle刪除日誌Oracle
- 運維中的日誌切割操作梳理(Logrotate/python/shell指令碼實現)運維logrotatePython指令碼
- 自動刪除歸檔日誌的指令碼(尤其是dataguard環境)指令碼
- mysql bin 日誌的刪除MySql
- 歸檔日誌的刪除
- Nocatalog 下的RMAN 增量備份 shell指令碼指令碼
- shell指令碼之刪除固定天數之前的檔案指令碼
- 使用shell指令碼對Nginx日誌進行切分指令碼Nginx
- elasticsearch日誌刪除命令Elasticsearch
- RMAN delete archivelog命令刪除歸檔日誌及歸檔日誌拷貝deleteHive
- 10G DATAGUARD增加REDO日誌組、刪除日誌組、刪除日誌成員實驗
- mysql binlog日誌自動清理及手動刪除MySql
- 批次刪除指定目錄下的sh指令碼指令碼
- Oracle11g redo log 建立、新增、刪除(重做日誌組,重做日誌檔案)Oracle
- 新增、刪除日誌檔案
- oracle刪除歸檔日誌Oracle
- 刪除日誌組成員
- Oracle歸檔日誌刪除Oracle
- shell 指令碼的除錯問題指令碼除錯
- [轉] MySQL binlog 日誌自動清理及手動刪除MySql
- 指令碼:刪除某一日前的資料指令碼
- 透過shell指令碼監控日誌切換頻率指令碼