linux删除日志文件的命令例:vi/var/log/messages:set nu查看文件中的你要删除的时间段在几行之间如果是100-200行,则将光标放在第100行,按100dd即可删除 。还有其他方法 。看你的具体需求 。
linux日志清理脚本清理不掉linux是一个很能自动产生文件的系统,日志、邮件、备份等 。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费 , 让系统定时清理一些不需要的文件很有一种爽快的事情 。不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧 。
二、 分析日志
查看日志路径和日志命名规则:
要清理这个目录下面如此命名规则的日志 。
三、方法
这时我想的肯定是希望能写一个脚本把这些日志清除掉,但不是删除掉 。那么现在需要实现3步:
1.找到所有项目的log的位置
2.清除或者删除log内容
3.定时执行脚本
删除和清空日志命令:
find 对应目录 -mtime天数 -name "文件名" -exec rm -rf {} \;
实例命令:
find /opt/soft/log/ -mtime7 -name "*.log" -exec rm -rf {} \;
说明:
将/opt/soft/log/目录下所有7天前带".log"的文件删除 。具体参数说明如下:
find:linux的查找命令,用户查找指定条件的文件;
/opt/soft/log/:想要进行清理的任意目录;
-mtime:标准语句写法;
7:查找7天前的文件 , 这里用数字代表天数;
"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件 , "*"表示查找所有文件 , 这个可以灵活运用 , 举一反三;
-exec:固定写法;
rm -rf:强制删除文件 , 包括目录;
{} \; :固定写法,一对大括号 空格 \ ;
清空方法:
find /opt/soft/log/ -mtime7 -name "*.log" -type f -print -exec truncate -s 0 {} \;-将符合这样一个条件的文件查到出来并赋予它0M的大小 。
-type f -print: 将符合的文件打印出来
truncate -s 0 aa.txt:意思是将aa.txt的大小变成0M,即把aa.txt的内容清空了
linux定时清理nohup命令下产生的日志nohup命令 将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端 。一般用于将程序的输出、报错信息重定向到一个指定路径的指定文件 。
语法 :nohup [command] [args] []
nohup命令 最后要带个作为结束
例:nohup python XXX.pyabc/def/XXX.log 21
args: 0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;
21是将标准错误(2)重定向到标准输出(1),标准输出(1)再被重定向输入到文件,即XXX.log中 。
nohup命令的缺点:日志文件文件越来越大 , 占内存且查看麻烦 。因为这个日志文件和程序是共生死的,因为只要程序运行起来,就一直对log文件进行读写,直接删除XXX.log会导致程序也被结束了 。
目前想到的一些相关方法如下,并未完全解决问题 。
参考: linux下nohup日志输出过大问题解决方案
split命令:
参数:-b:值为每一输出档案的大小 , 单位为 byte 。
-C:每一输出档中,单行的最大 byte 数 。
-d:使用数字作为后缀 。默认这个数字后缀是两位的,例如00,01,11. -a: 指定位数 , 例如 -a 4表示后缀是四位的 。
-l:值为每一输出档的列数大小 。
PREFIX:代表前导符 , 可作为切割文件的前导文件 。
例如:
可以用split命令把很大的日志文件分成多个小文件 , 分割完成后 原文件不变。不会影响nohup运行的程序 。
【linux清空日志命令 linux 清空日志】 缺点:split文件分割依赖手动,当程序出故障或调试时,将日志分割以便查看最新的日志信息 。没法定时做到定时自动清理 。
首先介绍find命令的参数
参考: linux find命令详解
在这里主要用到的是这几个参数:
-atime n查找系统中最后n*24小时访问的文件
-ctime n查找系统中最后n*24小时被改变文件状态的文件
-mtime n查找系统中最后n*24小时被改变文件数据的文件
n: n天前; -n: n天之内
find命令还可以和下一条命令连用(xargs或exec)
或
注:{}表示find到的东西;{}和 \;之间要有一个空格
我感觉exec不是很好用,怪怪的
cat dev/null
在 Linux 中 , null 设备基本上被用来丢弃某个进程不再需要的输出流,或者作为某个输入流的空白文件,这些通常可以利用重定向机制来达到 。
所以 /dev/null 设备文件是一个特殊的文件 , 它将清空送到它这里来的所有输入,而它的输出则可被视为一个空文件 。另外,你可以通过使用 cat 命令显示 /dev/null 的内容然后重定向输出到某个文件,以此来达到清空该文件的目的 。通过使用cat /dev/null,文件大小为0字节 。
用cat删除文件:
但是我发现对于nohup的程序的日志,这样是无效的 。因为nohup的程序持续不断地在读写日志文件 , 此时无法重定向,我试了几次 , 日志文件都压根没动 。
crontab用于设置定时任务
参考:linux crontab定时执行shell脚本
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具 , 并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务 , 则自动执行该任务 。
语法
crontab(选项)(参数)
选项
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u用户名称:指定要设定计时器的用户名称 。
参数
crontab文件:指定包含待执行任务的crontab文件 。
首先crontab -e , 就会进入vi编辑界面 。然后直接把新的命令输进去就行了 。
minutehourdaymonthweekcommand /XXX/XXX.log 顺序:分 时 日 月 周
minute: 表示分钟,可以是从0到59之间的任何整数 。
hour:表示小时,可以是从0到23之间的任何整数 。
day:表示日期,可以是从1到31之间的任何整数 。
month:表示月份,可以是从1到12之间的任何整数 。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日 。
/n表示每个n的单位执行一次
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件 。
意为每周的1:00执行,且输出重定向到黑洞目录 。
Linux查看系统日志的一些常用命令last
-a 把从何处登入系统的主机名称或ip地址,显示在最后一行 。
-d 指定记录文件 。指定记录文件 。将IP地址转换成主机名称 。
-f 记录文件 指定记录文件 。
-n 显示列数或-显示列数 设置列出名单的显示列数 。
-R 不显示登入系统的主机名称或IP地址 。
-x 显示系统关机,重新开机 , 以及执行等级的改变等信息
以下看所有的重启、关机记录
last | grep reboot
last | grep shutdown
history
列出所有的历史记录:
[zzs@Linux] # history
只列出最近10条记录:
[zzs@linux] # history 10 (注,history和10中间有空格)
使用命令记录号码执行命令,执行历史清单中的第99条命令
[zzs@linux] #!99 (!和99中间没有空格)
重复执行上一个命令
[zzs@linux] #!!
执行最后一次以rpm开头的'命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行 。)
[zzs@linux] #!rpm
逐屏列出所有的历史记录:
[zzs@linux]# history | more
立即清空history当前所有历史命令的记录
[zzs@linux] #history -c
cat, tail 和 watch
系统所有的日志都在 /var/log 下面自己看(具体用途可以自己查,附录列出一些常用的日志)
cat /var/log/syslog 等
cat /var/log/*.log
tail -f
如果日志在更新 , 如何实时查看 tail -f /var/log/messages
还可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次 。
该指令,不会直接返回命令行 , 而是实时打印日志文件中新增加的内容,
这一特性,对于查看日志是非常有效的 。如果想终止输出 , 按 Ctrl C 即可 。
除此之外还有more, less ,dmesg|more,这里就不作一一列举了,因为命令太多了,关键看个人喜好和业务需求.个人常用的就是以上那些
linux日志文件说明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
linux清空日志命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 清空日志、linux清空日志命令的信息别忘了在本站进行查找喔 。
推荐阅读
- 黄石直播卖货,黄石直播卖货招聘
- 怎么获取硬盘中的文件,怎么获取硬盘的文件目录
- jquery接收后台值,jquery怎么跟后端交互的
- 电筒无人直播,无人直播手机是什么
- oracle如何学好 oracle入门教程
- linux取消上一条命令,linux如何取消命令
- 模拟飞行游戏,最好的模拟飞行游戏
- 计算机联锁软件c毕业设计,计算机联锁系统应用前景
- linux命令行字符编码 linux查看字符编码格式