Bash脚本笔记一:清除log文件

Bash简介

Bash(GNU Bourne-Again Shell)是一个为GNU计划编写的Unix shell,它是许多Linux平台默认使用的shell。

shell是一个命令解释器,是介于操作系统内核与用户之间的一个绝缘层。准确地说,它也是能力很强的计算机语言,被称为解释性语言或脚本语言。它可以通过将系统调用、公共程序、工具和编译过的二进制程序”粘合“在一起来建立应用,这是大多数脚本语言的共同特征,所以有时候脚本语言又叫做“胶水语言”

事实上,所有的UNIX命令和工具再加上公共程序,对于shell脚本来说,都是可调用的。Shell脚本对于管理系统任务和其它的重复工作的例程来说,表现的非常好,根本不需要那些华而不实的成熟紧凑的编译型程序语言
——-实验楼

例子

编写输出Hello World的脚本

1
$ vim hello.sh

脚本文字扩展名为.sh

文件中写入如下代码

1
2
3
4
5
#!/bin/bash

#This is a comment

echo "Hello World"

注意 :第一行#!/bin/bash不是注释,不能省略。其作用是表示使用/bin/bash作为脚本的解释器

执行方法

使用bash执行

1
$ bash ./hello.sh

使用sh执行

1
$ sh  ./hello.sh

使用source

1
$ source  ./hello.sh

直接执行之前需要修改文件权限。u+x hello.sh表示给hello.sh文件的拥有者user加上可执行(x)权限

1
2
3
$ chmod u+x hello.sh  

$ ./hello.sh

清除log文件bash脚本

一、/var目录

/var 所有服务的登录的文件或错误信息文件(LOG FILES)都在/var/log下,此外,一些数据库如MySQL则在/var/lib下,还有,用户未读的邮件的默认存放地点为/var/spool/mail

二、/var/log/

  • 系统的引导日志:/var/log/boot.log

    例如:Feb 26 10:40:48 sendmial : sendmail startup succeeded

    就是邮件服务启动成功!

    系统日志一般都存在/var/log下

    常用的系统日志如下:

  • 核心启动日志:/var/log/dmesg

  • 系统报错日志:/var/log/messages

  • 邮件系统日志:/var/log/maillog

  • FTP系统日志:/var/log/xferlog

  • 安全信息和系统登录与网络连接的信息:/var/log/secure

  • 登录记录:/var/log/wtmp - 记录登录者讯录,二进制文件,须用last来读取内容 who -u /var/log/wtmp 查看信息

  • News日志:/var/log/spooler

  • RPM软件包:/var/log/rpmpkgs

  • XFree86日志:/var/log/XFree86.0.log

  • 引导日志:/var/log/boot.log 记录开机启动讯息,dmesg | more

  • cron(定制任务日志)日志:/var/log/cron​

​安全信息和系统登录与网络连接的信息:/var/log/secu

​- 文件 /var/run/utmp 記錄著現在登入的用戶。

  • 文件 /var/log/wtmp 記錄所有的登入和登出。

  • 文件 /var/log/lastlog 記錄每個用戶最後的登入信息。

  • 文件 /var/log/btmp 記錄錯誤的登入嘗試。

  • less /var/log/auth.log 需要身份确认的操作

    以清除mesaage和wtmp为例

1
$ vim cleanlogs.sh

​ 编写代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
#初始化一个变量

LOG_DIR=/var/log

cd $LOG_DIR

cat /dev/null > messages

cat /dev/null > wtmp

echo “Logs cleaned up.”

exit

代码详解

1
#!/bin/bash

表示用bash解析器执行的脚本,不是注释,不能省略

1
LOG_DIR=/var/log

定义一个变量存放/var/log目录

1
cd $LOG_DIR

​ 进入LOG_DIR,即/var/log目录,注意有$符号

1
2
3
cat /dev/null > messages  

cat /dev/null > wtmp

/dev/null这个东西可以理解为一个黑洞,里面是空的(可以用cat命令看一看),什么东西都可以往里面扔,扔了就没了.

1
2
3
echo “Logs cleaned up.”
exit
打印提示和退出。

-------------本文结束感谢您的阅读-------------