【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 # 

时间: 2024-10-28 17:31:16

【shell 脚本】删除/var/log 下的日志的相关文章

java-如何使用Java程序或shell脚本删除某目录下匹配文件名的文件.

问题描述 如何使用Java程序或shell脚本删除某目录下匹配文件名的文件. 如何使用Java程序或shell脚本删除某目录下匹配文件名的文件. 解决方案 Java的话,直接调用File的delete方法就可以了.比如你拿到了要删除文件的路径为path.代码如下 File file = new File(path); file.delete(); 解决方案二: 先判断file是目录还是文件,如果是文件就匹配文件名删除,是目录就遍历,继续判断目录或文件(递归) 解决方案三: 要使用shell脚本删

Shell脚本定期清空大于1G的日志文件

  这篇文章主要介绍了Shell脚本定期清空大于1G的日志文件,本文直接给出实现代码,需要的朋友可以参考下 一个关于如何在指定文件大于1GB后,自动删除的问题. 批处理代码如下: 代码如下: #!/bin/bash # 当/var/log/syslog大于1GB时 # 自动将其备份,并清空 # 注意这里awk的使用 if ! [ -f /var/log/syslog ] then echo "file not exist!" exit 1 fi if [ `ls -l /var/log

用Shell脚本快速搭建Ubuntu下的Nodejs开发环境_linux shell

nodejs的确是很火,以前倒腾过,但是从来没有认真记录下什么.在ubuntu下搭建它的开发环境尝尝鲜,有一个捷径,它能让系统自动帮你安装所需要的东西,我们生成一段shell脚本,让它来完成以下工作: 安装 git下最新的node,node包管理器,Forever和Cloud9IDE工具(可选),mongodb 10gen:注:脚本的正常运行需要比较新版本的Ubuntu,而且需要联网,因为它会连接网络去下载所有的依赖包顺序安装. 1.脚本代码: 复制代码 代码如下: #!/bin/shecho

shell脚本删除一天前的备份文件实例

今天公司要求我把服务器上的备份文件拷到内部服务器上,并且只要最新的,好吧,运维人员的理想目标是什么,就是能够让电脑做的事,决不自己来做.   系统:centos 5.9   环境:备份文件在/root/bak下,当然我是虚拟机上进行的测试 1.备份文件环境图 2.shell脚本内容:  代码如下 复制代码  #!/bin/bash   location="/root/bak/"  find $location -type f -mtime +1|xargs rm -f 运行脚本后的图

Shell脚本定期清空大于1G的日志文件_linux shell

一个关于如何在指定文件大于1GB后,自动删除的问题. 批处理代码如下: 复制代码 代码如下: #!/bin/bash # 当/var/log/syslog大于1GB时 # 自动将其备份,并清空 # 注意这里awk的使用 if ! [ -f /var/log/syslog ] then echo "file not exist!" exit 1 fi if [ `ls -l /var/log/syslog|awk '{print $5}'` -gt $((1024*1024)) ] th

Linux shell编程 5 ---- 利用shell脚本遍历某个目录下的所有文件

 1 我们都知道shell脚本能够做很多的事,今天刚好一个队友要我写个脚本求某个目录下所有java文件的行数总和  2 ok,为了方便,我把这个目录放到了当前的家目录下,路径为/home/chenguolin/src  3 我在家目录下建了一个s.sh的脚本,代码如下,等等来分析代码的意思 #!/bin/bash function ergodic(){ for file in ` ls $1 ` do if [ -d $1"/"$file ] then ergodic $1"

shell 批量删除指定目录下的目录

拿.svn举例 比如我要删除/data/web/下的所有.svn目录,那么执行以下命令即可.  代码如下 复制代码 cd /data/web find . -type d -name ".svn"|xargs rm -rvf 去掉指定目录下指定类型文件的可执行属性  代码如下 复制代码 find ./ -type f -name "*.php" -exec chmod a-x {} ; find ./ -type f -name "*.php"

linux下通过shell脚本对tomcat和nginx做日志切割

线上服务器一般都会遇到各种各样的日志切割.之前一直没有发布类似详细脚本文章,这次就弥补下网站相关内容.万变不离其宗,下边简单讲解一下两个日志切割,其他服务日志的切割也可以这样实现. Tomcat日志catalina.out切割小脚本: #!/bin/bash #cut tomcat catalina.out yesterday=`date  +"%F" -d  "-1 days"` cd /usr/local/tomcat7.0.70/log cp catalina

linux中shell脚本删除.svn文件夹

 当在linux服务器上进行了svn代码下载后,要同步到web目录里去的话,就要把.svn这个文件夹给清理干净,给安全性增加一点保障. 脚本内容: del_svn.sh  代码如下 复制代码 #!/bin/bash cd /home/trunk/ find ./ -name ".svn" |xargs -n1 echo > /dev/null 2>&1 find ./ -name ".svn" -print0 | xargs -0 rm -fr