logrotate
系统日志进行轮转、压缩和删除
补充说明
logrotate命令 用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱。使用logrotate指令,可让你轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc/logrotate.conf文件中。
语法
logrotate(选项)(参数)
选项
-?或--help:在线帮助;
-d或--debug:详细显示指令执行过程,便于排错或了解程序执行的情况;
-f或--force :强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然;
-s<状态文件>或--state=<状态文件>:使用指定的状态文件;
-v或--version:显示指令执行过程;
-usage:显示指令基本用法。
参数
配置文件:指定lograote指令的配置文件。
实例
crontab 会定时调用logrotate命令 在 /etc/cron.daily/logrotate 文件中配置使用
logrotate的配置文件/etc/logrotate.conf 定义引用/etc/logrotate.d目录下的一些自定义的log配置
在/etc/logrotate.d目录下创建任意后缀名的文件,即可使用对日志进行轮转
/tmp/log/log.txt
{
copytruncate
daily
rotate 30
missingok
ifempty
compress
noolddir
}
这个配置文件代表的意思是将/tmp/log/log.txt文件 进行轮转压缩
compress 通过gzip 压缩转储以后的日志
nocompress 不做gzip压缩处理
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断;是先拷贝再清空的方式,拷贝和清空之间有一个时间差,可能会丢失部分日志数据。
nocopytruncate 备份日志文件不过不截断
create mode owner group 轮转时指定创建新文件的属性,如create 0777 nobody nobody
nocreate 不建立新的日志文件
delaycompress 和compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress 覆盖 delaycompress 选项,转储同时压缩
missingok 如果日志丢失,不报错继续滚动下一个日志
errors address 专储时的错误信息发送到指定的Email 地址
ifempty 即使日志文件为空文件也做轮转,这个是logrotate的缺省选项。
notifempty 当日志文件为空时,不进行轮转
mail address 把转储的日志文件发送到指定的E-mail 地址
nomail 转储时不发送日志文件
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir 转储后的日志文件和当前日志文件放在同一个目录下
sharedscripts 运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本
prerotate 在logrotate转储之前需要执行的指令,例如修改文件的属性等动作;必须独立成行
postrotate 在logrotate转储之后需要执行的指令,例如重新启动 (kill -HUP) 某个服务!必须独立成行
daily 指定转储周期为每天
weekly 指定转储周期为每周
monthly 指定转储周期为每月
rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
dateext 使用当期日期作为命名格式
dateformat .%s 配合dateext使用,紧跟在下一行出现,定义文件切割后的文件名,必须配合dateext使用,只支持 %Y %m %d %s 这四个参数
size(或minsize) log-size 当日志文件到达指定的大小时才转储
注意事项
在/etc/logrotate.d目录下创建任意后缀名的文件
logsave
将命令的输出信息保存到指定的日志文件
补充说明
logsave命令 运行给定的命令,并将命令的输出信息保存到指定的日志文件中。
语法
logsave(选项)(参数)
选项
-a:追加信息到指定的日志文件中。
参数
- 日志文件:指定记录运行信息的日志文件;
- 指令:需要执行的指令。
logwatch
可定制和可插入式的日志监视系统
补充说明
logwatch命令 是一个可定制和可插入式的日志监视系统,它通过遍历给定时间范围内的系统日志文件而产生日志报告。logwatch默认每天执行一次,可以从/etc/cron.daily里看到。
语法
logwatch(选项)
选项
--detail<报告详细程度>:指定日志报告的详细程度;
--logfile<日志文件>:仅处理指定的日志文件;
--service<服务名>:仅处理指定服务的日志文件;
--print:打印结果到标准输出;
--mailto<邮件地址>:将结果发送到指定邮箱;
--range<日期范围>:指定处理日志的日期范围;
--archives:处理归档日志文件;
--debug<调试等级>:调试模式;
--save<文件名>:将结果保存到指定文件中,而不显示或者发送到指定邮箱;
--logdir<目录>:指定查找日志文件的目录,而不使用默认的日志目录;
--hostname<主机名>:指定在日志报告中使用的主机名,不使用系统默认的主机名;
--numeric:在报告中显示ip地址而不是主机名;
--help:显示指令的帮助信息。
实例
检查你的主机上是否已经存在Logwatch(Redhat默认已经安装了Logwatch,不过版本比较旧):
rpm -qa logwatch
如果主机上没有logwatch,则执行:
rpm -Ivh logwatch***.rpm
如果有老版本的logwatch,则执行:
rpm -Uvh logwatch***.rpm
安装完毕后,开始配置:
可以修改和添加它的logfiles、services和其他配置,但默认已经有很多脚本了,只要在1)里设置Detail = High就可以了。
- 可以添加新的配置到
/etc/logwatch/conf/logwatch.conf - 也可以修改
/usr/share/logwatch/default.conf/logwatch.conf
/etc/logwatch/conf/会自动覆盖/usr/share/logwatch/default.conf/下的同名文件。
如果没有设置logwatch.conf也没关系,可以直接在命令行下设置。
logwatch --detail High --Service All --range All --print 基本就可以显示出所有日志的情况了
logwatch --service sshd --detail High 只看sshd的日志情况
look
显示文件中以指定字符串开头的任意行
补充说明
look命令 用于显示文件中以指定字符串开头的任意行。
语法
look(选项)(参数)
选项
-a:使用另一个字典文件web2,该文件也位于/usr/dict目录下;
-d:只对比英文字母和数字,其余一概忽略不予比对;
-f:忽略字符大小写差别;
-t<字尾字符串>:设置字尾字符串。
参数
- 字符串:指定要查找的字符串;
- 文件:指定要查找的目标文件。
losetup
设定与控制循环(loop)设备
补充说明
losetup命令 用来设置循环设备。循环设备可把文件虚拟成块设备,籍此来模拟整个文件系统,让用户得以将其视为硬盘驱动器,光驱或软驱等设备,并挂入当作目录来使用。
语法
losetup [ -e encryption ] [ -o offset ] loop_device file
losetup [ -d ] loop_device
选项
-a 显示所有循环设备的状态。
-d 卸除设备。
-e <加密选项> 启动加密编码 。
-f 寻找第一个未使用的循环设备。
-o <偏移量>设置数据偏移量,单位是字节。
参数
- loop_device:循环设备可以是/dev/loop0, /dev/loop1 … /dev/loop7。
- file:要与循环设备相关联的文件名,这个往往是一个磁盘镜象文件,如 *.img
loop设备介绍
在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备。它能使我们像块设备一样访问一个文件。在使用之前,一个 loop 设备必须要和一个文件进行连接。这种结合方式给用户提供了一个替代块特殊文件的接口。因此,如果这个文件包含有一个完整的文件系统,那么这个文件就可以像一个磁盘设备一样被 mount 起来。
上面说的文件格式,我们经常见到的是 cd 或 DVD 的 ISO 光盘镜像文件或者是软盘(硬盘)的 *.img 镜像文件。通过这种 loop mount (回环mount)的方式,这些镜像文件就可以被 mount 到当前文件系统的一个目录下。
至此,顺便可以再理解一下 loop 之含义:对于第一层文件系统,它直接安装在我们计算机的物理设备之上;而对于这种被 mount 起来的镜像文件(它也包含有文件系统),它是建立在第一层文件系统之上,这样看来,它就像是在第一层文件系统之上再绕了一圈的文件系统,所以称为 loop。
lp
打印文件或修改排队的打印任务
补充说明
lp命令 用于打印文件,或者修改排队的打印任务。与lpr命令类似,lp命令既支持文件输入也支持标准输入。它与lpr的不同之处在于它有一个不同(稍微复杂点)的参数选项设置。
语法
lp(选项)(参数)
选项
-E:与打印服务器连接时强制使用加密;
-U:指定连接打印服务器时使用的用户名;
-d:指定接收打印任务的目标打印机;
-i:指定一个存在的打印任务号;
-m:打印完成时发送E-mail;
-n:指定打印的份数;
-t:指定打印任务的名称;
-H:指定打印任务开始的时间;
-P:指定需要打印的页码。
参数
文件:需打印的文件。
实例
要在连接在设备dlp0上的打印机lp0上打印文件/etc/motd,请输入:
lp /etc/motd
要使用文件的一个副本打印/etc/motd文件的30个副本,并且要用邮件通知用户作业完成,请输入:
lp -c -m -n30 -dlp0:lpd0 /etc/motd
要使用后端标志-f和-a并带上作业标题blah打印/etc/motd文件,请输入:
lp -t "blah" -o -f -o -a /etc/motd
要排队MyFile文件并返回作业编号,请输入:
lp myfile
要排队MyFile文件并禁止作业编号,请输入:
lp -s myfile
退出状态
该命令返回以下退出值:
- 0:所有输入文件成功处理。
-
0:没有输出设备可用,或者出现一个错误。
lpadmin
配置CUPS套件中的打印机和类
补充说明
lpadmin命令 用于配置CUPS套件中的打印机和类,也被用来设置打印服务器默认打印机。
语法
lpadmin(选项)(参数)
选项
-c:将打印机加入类;
-i:为打印机设置“system V”风格的接口脚本;
-m:从mode目录设置一个标准的“system V”接口脚本或“PPD”文件;
-o:为“PPD”或服务器设置选项;
-r:从类中删除打印机;
-u:设置打印机用户级的访问控制;
-D:为打印机提供一个文字描述;
-E:允许打印机接受打印任务;
-L:为打印机位置提供一个文字描述;
-P:为打印机指定一个ppd描述文件;
-p:指定要配置的打印机名称;
-d:设置默认打印机。
参数
打印机:指定要配置的打印机的名称。
lpc
命令行方式打印机控制程序
补充说明
lpc命令 式命令行方式打印机控制程序,有5个内置命令。
语法
lpc
实例
[root@localhost ~]# lpc
lpc> ?
命令可能是缩写。命令是:
exit help quit status ?
lpc> exit
lpq
显示打印队列中的打印任务的状态信息
补充说明
lpq命令 用于显示打印队列中的打印任务的状态信息。
语法
lpq(选项)
选项
-E:强制使用加密方式与服务器连接;
-P:显示中的打印机上的打印队列状态;;
-U:自动可选的用户名;
-a:报告所有打印机的定义任务;
-h:指定打印服务器信息;
-l:使用长格式输出;
+:指定显示状态的间隔时间。
lpr
将文件发送给指定打印机进行打印
补充说明
lpr命令 用于将文件发送给指定打印机进行打印,如果不指定目标打印机,则使用默认打印机。
语法
lpr(选项)(参数)
选项
-E:与打印服务器连接时强制使用加密;
-H:指定可选的打印服务器;
-C:指定打印任务的名称;
-P:指定接受打印任务的目标打印机;
-U:指定可选的用户名;
-#:指定打印的份数;
-h:关闭banner打印;
-m:打印完成后发送E-mail;
-r:打印完成后删除文件。
参数
文件:需打印的文件。
实例
将man1和man2送到打印机lp进行打印:
lpr -P lp man1 man2