📄 cleanup.sh
字号:
#!/bin/bash################################################################ 说明:删除logfile 的脚本###############################################################LOG_DIR=/var/logROOT_UID=0 # $UID 为0 的用户才具有根用户的权限LINES=50 # 默认的保存行数E_XCD=66 # 不能修改目录,与下面的E_NOTROOT相似,用于本脚本退出返回E_NOTROOT=67 # 非根用户# 一定要使用根用户来运行if [ "$UID" -ne "$ROOT_UID" ]then echo "Must be root to run this script." exit $E_NOTROOTfi # 在下面添加代码>># 功能:# 判断是否有命令行参数# 如果有则lines等于输入的参数,没有则使用前面定义的默认的保存行数LINES# 提示:# 可以使用if或case结构# lines变量用于表示清除LOG时保存的行数# >添加代码处<if [ -n "$1" ] # 测试是否有命令行参数(非空).then lines=$1else lines=$LINES # 如果不在命令行中指定,使用默认fi # 可以使用下边的更好方法来检测命令行参数.# 其使用了case结构## E_WRONGARGS=65 # Non-numerical argument (bad arg format)## case "$1" in# "" ) lines=50;;# *[!0-9]*) echo "Usage: `basename $0` file-to-cleanup"; exit $E_WRONGARGS;;# * ) lines=$1;;# esac## 在下面添加代码>># 功能:# 进入LOG_DIR目录,如果失败,则退出,同时返回E_XCD# 提示:# 可以使用if结构或混合命令条件执行结构(||或者&&)# >添加代码处<cd $LOG_DIRif [ `pwd` != "$LOG_DIR" ] # 也可以用 if [ "$PWD" != "$LOG_DIR" ] # 查看是否在 /var/log目录中then echo "Can't change to $LOG_DIR." exit $E_XCDfi # 在处理log file 之前,再确认一遍当前目录是否正确.# 更有效率的做法是:## cd /var/log || {# echo "Cannot change to necessary directory." >&2# exit $E_XCD;# }tail -$lines messages > mesg.temp # 保存log file 消息的最后部分.mv mesg.temp messages # 变为新的log 目录.cat /dev/null > wtmpecho "Logs cleaned up."exit 0# 退出之前返回0,表示成功.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -