我想收集linux中的日志,格式为:时间+用户+执行的命令。怎么写这个shell脚本。

我想收集linux中的日志,格式为:时间+用户+执行的命令。怎么写这个shell脚本。,第1张

是想输入history命令后,显示 哪个时间哪个用户执行了哪个命令 对吧?
像这样:
1252 [2011-10-14 10:06:23] vim /etc/vimrc
1253 [2011-10-14 10:13:59] vim /etc/vimrc
1254 [2011-10-14 10:18:23] vim /etc/bashrc
1255 [2011-10-14 10:22:39] vim /etc/vimrc
1256 [2011-10-15 18:56:56] history
你可以修改/etc/profile 文件来达到你的目的,如上面我就是加了哪个时间执行了哪个命令的历史记录片段。

1、新建sh文件

删除30天以前的文件

#!/bin/bash

find /home/sdu/server/node1/logs/ -mtime +30 -print | xargs rm -rf

 //注释-mtime是距离上一次修改时间 -print是只显示文件 xargs是获取find查找的结果在通过rm命令删除

2、部署服务器

3、设置crontab定时任务

打开定时任务配置文件:crontab -e

定时调用testsh: /home/testsh

        保存退出:按键ESC,输入:wq

第一个        一小时当中的第几分钟      0-59

第二个        一天当中的第几小时          0-23

第三个        一个月当中的第几天          1-31

第四个        一年当中的第几月              1-12

第五个        一周当中的星期几              0-7(0和7都代表周日)

       代表任何时间,比如第一个 就代表一小时中的每分钟都执行

,        代表不连续的时间,比如 0 8,12,16 代表每天8,12,16点0分执行

-        代表连续的时间范围,比如0 5 1-6 代表在周一到周六凌晨5点0分执行

/n     代表每个多久执行一次,比如/10 代表每隔10分钟执行一次

例子:

45 22    

在22点45分执行

0 17 1     

在每周1的17点0分执行

0 5 1,15  

在每月1号和15号的凌晨5点0分执行

40 4 1-5  

在每周一到周五的凌晨4点40分执行

/10 4    

在每天的凌晨4点,每隔10分钟执行一次

0 0 1,15 1  

每月1号和15号,每周1的0点0分都会执行

注意:星期几和几号最好不要同时出现,他们的意义都是天,容易混淆

4、查看目前都有那些定时任务

        crontab -l

5、备注:

定时任务需要crond服务的支持

1启动方法  service crond restart

2该服务默认是开机启动的

取消定时任务

1全部取消 crontab -r

2取消某个 crontab -e 配置文件,删除要取消的哪一行配置

若定时任务存在,编辑shell脚本后,不用做任何 *** 作,不放心的话可以启动脚本看下是否报错 sh 脚本名字


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10888017.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存