logrotate

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目录下创建任意后缀名的文件

2024-08-08    
logsave

logsave

将命令的输出信息保存到指定的日志文件

补充说明

logsave命令 运行给定的命令,并将命令的输出信息保存到指定的日志文件中。

语法

logsave(选项)(参数)

选项

-a:追加信息到指定的日志文件中。

参数

  • 日志文件:指定记录运行信息的日志文件;
  • 指令:需要执行的指令。
2024-08-08    
logwatch

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的日志情况
2024-08-08    
look

look

显示文件中以指定字符串开头的任意行

补充说明

look命令 用于显示文件中以指定字符串开头的任意行。

语法

look(选项)(参数)

选项

-a:使用另一个字典文件web2,该文件也位于/usr/dict目录下;
-d:只对比英文字母和数字,其余一概忽略不予比对;
-f:忽略字符大小写差别;
-t<字尾字符串>:设置字尾字符串。

参数

  • 字符串:指定要查找的字符串;
  • 文件:指定要查找的目标文件。
2024-08-08    
losetup

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。

2024-08-08    
lp

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:没有输出设备可用,或者出现一个错误。

2024-08-08    
lpadmin

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:设置默认打印机。

参数

打印机:指定要配置的打印机的名称。

2024-08-08    
lpc

lpc

命令行方式打印机控制程序

补充说明

lpc命令 式命令行方式打印机控制程序,有5个内置命令。

语法

lpc

实例

[root@localhost ~]# lpc
lpc> ?         
命令可能是缩写。命令是:

exit    help    quit    status  ?
lpc> exit
2024-08-08    
lpq

lpq

显示打印队列中的打印任务的状态信息

补充说明

lpq命令 用于显示打印队列中的打印任务的状态信息。

语法

lpq(选项)

选项

-E:强制使用加密方式与服务器连接;
-P:显示中的打印机上的打印队列状态;;
-U:自动可选的用户名;
-a:报告所有打印机的定义任务;
-h:指定打印服务器信息;
-l:使用长格式输出;
+:指定显示状态的间隔时间。
2024-08-08    
lpr

lpr

将文件发送给指定打印机进行打印

补充说明

lpr命令 用于将文件发送给指定打印机进行打印,如果不指定目标打印机,则使用默认打印机。

语法

lpr(选项)(参数)

选项

-E:与打印服务器连接时强制使用加密;
-H:指定可选的打印服务器;
-C:指定打印任务的名称;
-P:指定接受打印任务的目标打印机;
-U:指定可选的用户名;
-#:指定打印的份数;
-h:关闭banner打印;
-m:打印完成后发送E-mail;
-r:打印完成后删除文件。

参数

文件:需打印的文件。

实例

将man1和man2送到打印机lp进行打印:

lpr -P lp man1 man2
2024-08-08