免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4415 | 回复: 27
打印 上一主题 下一主题

询问一个日志保存的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-12 15:18 |只看该作者 |倒序浏览
现有一程序写一个日志文件/opt/ctos.log

日志大小大于50M的时候就切换日志,并以时间命名

我采取的办法是

PATH=$PATHHOME/bin:/sbin:/usr/sbin:/usr/bin:/root/bin

export PATH

DATE=`date +_%Y_%m_%d_%H_%M_%S`

size=$( ll /opt/ctos.log|awk '{print $5}' )

if [$size -gt 50000000] ; then

cp /opt/ctos.log /opt/ctos$DATE.log

cat /dev/null > /opt/ctos.log

fi

这样在cp执行后和cat执行前这时间内的日志会丢失 ,请问各位大侠采用什么办法才能不丢日志?

我的系统是hp-ux, 不支持sed -i选项,苦恼啊~~

论坛徽章:
2
白羊座
日期:2013-11-18 19:52:42辰龙
日期:2014-09-07 07:46:06
2 [报告]
发表于 2012-06-12 15:22 |只看该作者
用mv -f 取代cp

论坛徽章:
2
白羊座
日期:2013-11-18 19:52:42辰龙
日期:2014-09-07 07:46:06
3 [报告]
发表于 2012-06-12 15:26 |只看该作者
本帖最后由 damcool 于 2012-06-12 15:28 编辑

  1. DATE=`date +_%Y_%m_%d_%H_%M_%S`
  2. size=$( stat -c %s /opt/ctos.log)
  3. if [ $size -gt 50000000 ] ; then
  4.      mv -f /opt/ctos.log /opt/ctos${DATE}.log
  5.      touch /opt/ctos.log
  6. fi
复制代码

论坛徽章:
0
4 [报告]
发表于 2012-06-12 15:27 |只看该作者
mv之后没用的  日志写入会写到mv之后的那个文件

我是用>> 写到ctos.log的
如果mv ctos.log ctos.log.20120606之后就去写ctos.log.20120606了  -f只是禁止交互操作

论坛徽章:
2
白羊座
日期:2013-11-18 19:52:42辰龙
日期:2014-09-07 07:46:06
5 [报告]
发表于 2012-06-12 15:29 |只看该作者
wunesta 发表于 2012-06-12 15:27
mv之后没用的  日志写入会写到mv之后的那个文件

我是用>> 写到ctos.log的

你的说法很有趣,你可尝试过??!!

论坛徽章:
0
6 [报告]
发表于 2012-06-12 15:38 |只看该作者
我当然试过了。。 这办法没用才苦恼啊

论坛徽章:
2
白羊座
日期:2013-11-18 19:52:42辰龙
日期:2014-09-07 07:46:06
7 [报告]
发表于 2012-06-12 15:41 |只看该作者
wunesta 发表于 2012-06-12 15:38
我当然试过了。。 这办法没用才苦恼啊

那我告诉你你问错问题了,你的问题是文件读写锁的问题。

论坛徽章:
0
8 [报告]
发表于 2012-06-12 15:43 |只看该作者
rx2800b/opt~mv -f ctos.log ctos1212.log
rx2800b/opt~ll|grep ctos               
drwxr-xr-x   5 root       sys           8192 6月11日 09:23 ctos
-rw-r--r--   1 root       sys        5668613 6月12日 15:41 ctos1212.log
-rw-r--r--   1 root       sys         684369 6月 8日 14:15 ctoscut.log
rx2800b/opt~mv -f ctos.log ctos1212.log
mv: ctos.log: 不能存取: 没有该文件或目录
rx2800b/opt~ll|grep ctos               
drwxr-xr-x   5 root       sys           8192 6月11日 09:23 ctos
-rw-r--r--   1 root       sys        5668613 6月12日 15:41 ctos1212.log
-rw-r--r--   1 root       sys         684369 6月 8日 14:15 ctoscut.log
rx2800b/opt~ll|grep ctos               
drwxr-xr-x   5 root       sys           8192 6月11日 09:23 ctos
-rw-r--r--   1 root       sys        5668613 6月12日 15:41 ctos1212.log
-rw-r--r--   1 root       sys         684369 6月 8日 14:15 ctoscut.log
rx2800b/opt~ll|grep ctos
drwxr-xr-x   5 root       sys           8192 6月11日 09:23 ctos
-rw-r--r--   1 root       sys        5675705 6月12日 15:42 ctos1212.log
-rw-r--r--   1 root       sys         684369 6月 8日 14:15 ctoscut.log
rx2800b/opt~

论坛徽章:
0
9 [报告]
发表于 2012-06-12 15:44 |只看该作者
我mv之后  ctos1212.log在变大 还是在写这个文件哦

高手有什么高招不?:wink:

论坛徽章:
0
10 [报告]
发表于 2012-06-12 15:46 |只看该作者
就是日志切换保存,websphere里日志就是每50M切换一个,不会有丢失。现在不想在websphere上跑程序,自己搞这个日志切换才有问题哦


-rw-r--r--   1 root       root       28956647 6月12日 15:46 SystemOut.log
-rw-r--r--   1 root       root       52429012 6月11日 17:32 SystemOut_12.06.11_17.32.14.log
-rw-r--r--   1 root       root       52430435 6月12日 00:28 SystemOut_12.06.12_00.28.35.log
-rw-r--r--   1 root       root       52430437 6月12日 07:37 SystemOut_12.06.12_07.37.41.log
-rw-r--r--   1 root       root       52430403 6月12日 12:41 SystemOut_12.06.12_12.41.48.log

其实要的就是这种效果
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP