当前位置: 技术问答>linux和unix
求救!shell脚本的编写
来源: 互联网 发布时间:2015-12-01
本文导语: 我用c写了一个网络程序(main),用printf打印出来很多网络收发数据,通过重定向保存在一个文本文件中(print.log),由于日志文件太大,想能实现下面的功能: 能使重定向的文本文件按照时间每...
我用c写了一个网络程序(main),用printf打印出来很多网络收发数据,通过重定向保存在一个文本文件中(print.log),由于日志文件太大,想能实现下面的功能:
能使重定向的文本文件按照时间每天保存一个文件(例如print20060620.log,print20060621.log...),而不是保存在一个文件(print.log)中,要求main不能重起)
谢谢!
能使重定向的文本文件按照时间每天保存一个文件(例如print20060620.log,print20060621.log...),而不是保存在一个文件(print.log)中,要求main不能重起)
谢谢!
|
你用crontab -e命令编辑crontab表,在最后一行加入如下信息
0 0 * * * cp print.log print-`date +%Y%m%d`.log; > print.log
第一个零表示0分,第二个零表示0点,即每天0点0分把print.log拷贝到你说的print-20060620.log中,再把print.log清零
0 0 * * * cp print.log print-`date +%Y%m%d`.log; > print.log
第一个零表示0分,第二个零表示0点,即每天0点0分把print.log拷贝到你说的print-20060620.log中,再把print.log清零
|
是的,同意楼上的,然后把这个脚本放到/etc/cron.daily 里面,让它每天执行不就好了
至于执行的时间,你修改/etc/crontab 文件
至于执行的时间,你修改/etc/crontab 文件
|
你用系统带的logrotate来做吧,自动实现按大小分割的.
这里有一篇文章:
http://www.freelamp.com/1003237698/index_html
这里有一篇文章:
http://www.freelamp.com/1003237698/index_html
|
真....这问题多简单,
每天定时移动print.log 到 print-date.log
然后重新建立一个print.log ...输入。
每天定时移动print.log 到 print-date.log
然后重新建立一个print.log ...输入。
|
file_name=`date +%y%m%d`;
取得系统时间 然后 >>file_name 不就行了,每次都输出到当前时间命名的文件
|
推荐使用logrotate,这个日志管理工具拥有楼主需要的所有功能,到网上搜一下,有关它的使用说明很多,REDHAT /var/log下的日志文件就是用此工具管理的。
标准过程,不用再自己想一个处理方法了,也有助于程序标准化。
标准过程,不用再自己想一个处理方法了,也有助于程序标准化。
|
你的print.log文件中有没有一个日期的字段,有的话,可以加入日期条件,每天仅移动昨天的记录到新的log文件中。
|
写log文件的文件名不要写成print.log,要根据当前时间生成文件名。