初学者的问题,要用Linux做一个批处理,碰到了几个问题

arrowssystems 2004-06-22 09:43:54
主要是处理文件的问题
某个目录下有按照日期命名的每天的log文件。
先要求
1.把前一天的log文件压缩
2.把90天前的压缩文件删除
3.要求每天晚上12点自动执行

小弟刚接触linux,完全不知如何下手。请各位指点了。
问题完美解决后,另送上100分酬谢。
...全文
160 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
arrowssystems 2004-06-22
  • 打赏
  • 举报
回复
回复人: pacman2000(pacman) ( ) 信誉:100 2004-06-22 11:22:00 得分: 0


先算出昨天的日期和90天前的日期!
然后gzip压缩昨天日期的log文件,rm删除90天前日期的gz文件。
用crontab可以指定在0:00执行。
--------------------------------------------------------------------------
可能不光要删除90天前的那一天的那个文件,如果由于某种原因,90天以前的有些文件没有删掉,
要把90天以前的所有存在的文件都删掉。这个实现起来是不是很困难?


Northwindrocker 2004-06-22
  • 打赏
  • 举报
回复
用shell写一个小程序来解决!思路见楼上的!
pacman2000 2004-06-22
  • 打赏
  • 举报
回复
先算出昨天的日期和90天前的日期!
然后gzip压缩昨天日期的log文件,rm删除90天前日期的gz文件。
用crontab可以指定在0:00执行。
dt211 2004-06-22
  • 打赏
  • 举报
回复
up
zhuomaocn 2004-06-22
  • 打赏
  • 举报
回复
帮你写个例子
LOG_DATE=`date --date='1 day ago' '+%Y%m%d'`
DES_ACCESS_LOG=/XXX/logs/access_log_${LOG_DATE}
ORG_ACCESS_LOG=/usr/local/apache2/logs/access_log
DES_LOG_DIR=/XXX/logs/
mv -f $ORG_ACCESS_LOG $DES_ACCESS_LOG
gzip -f $DES_ACCESS_LOG
find ${DES_LOG_DIR}* -not -mtime -120 -exec rm {} \;

第3个问题
在crontab里
添上
0 0 * * * bash 你的sh文件

19,614

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧