采用crontab定时机制删除,每天定时压缩7天以前的文件,压缩之后再删除。
请各位大侠指点如何写脚本
7 个解决方案
#1
一下语句单独执行可以,为什么写到sh文件后,用sh 文件名.sh 就不能执行报如下错误
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.log\" -mtime +5 -exec tar cvf /weblog10/bea/user_projects/log/task/schedule/backup/task-`date +\%y\%m\%d`.tar {} \;
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.log\" -mtime +5 -exec rm -rf {} \;
$ find: 0652-018 An expression term lacks a required parameter.
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.log\" -mtime +5 -exec tar cvf /weblog10/bea/user_projects/log/task/schedule/backup/task-`date +\%y\%m\%d`.tar {} \;
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.log\" -mtime +5 -exec rm -rf {} \;
$ find: 0652-018 An expression term lacks a required parameter.
#2
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.log\" -mtime +5 -exec tar cvf /weblog10/bea/user_projects/log/task/schedule/backup/task-`date +\%y\%m\%d`.tar {} \;
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.tar\" -mtime +5 -exec rm -rf {} \;
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.tar\" -mtime +5 -exec rm -rf {} \;
#3
我这边想实现的就是先压缩log后删除log,只是这两个依据单独执行可以执行,但是写到sh文件后就不能执行了
#4
因为find -exec 参数默认是以 \; 结尾的。你的两条命令系统会以为是一条命令,所以报错。(个人猜测)
建议分开,间隔一段时间执行第二条。又不费事,也能减轻服务器压力。
#5
there is a package called logrotate...
#6
source /etc/profile
find /weblog10/bea/user_projects/log/task/schedule/ -name "*.log" -mtime +7 -exec tar cvf /weblog10/bea/user_projects/log/task/schedule/backup/task-`date "+%y%m%d"`.tar {} \;
find /weblog10/bea/user_projects/log/task/schedule/ -name "*.log" -mtime +7 -exec rm -f {} \;
把以上3行代码保存为 test.sh,依次执行下面两个命令:
chmod +x test.sh
./test.sh
看看是否报错
#7
先find出文件出来,然后备份清除
#1
一下语句单独执行可以,为什么写到sh文件后,用sh 文件名.sh 就不能执行报如下错误
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.log\" -mtime +5 -exec tar cvf /weblog10/bea/user_projects/log/task/schedule/backup/task-`date +\%y\%m\%d`.tar {} \;
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.log\" -mtime +5 -exec rm -rf {} \;
$ find: 0652-018 An expression term lacks a required parameter.
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.log\" -mtime +5 -exec tar cvf /weblog10/bea/user_projects/log/task/schedule/backup/task-`date +\%y\%m\%d`.tar {} \;
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.log\" -mtime +5 -exec rm -rf {} \;
$ find: 0652-018 An expression term lacks a required parameter.
#2
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.log\" -mtime +5 -exec tar cvf /weblog10/bea/user_projects/log/task/schedule/backup/task-`date +\%y\%m\%d`.tar {} \;
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.tar\" -mtime +5 -exec rm -rf {} \;
find /weblog10/bea/user_projects/log/task/schedule/ -name \"*.tar\" -mtime +5 -exec rm -rf {} \;
#3
我这边想实现的就是先压缩log后删除log,只是这两个依据单独执行可以执行,但是写到sh文件后就不能执行了
#4
因为find -exec 参数默认是以 \; 结尾的。你的两条命令系统会以为是一条命令,所以报错。(个人猜测)
建议分开,间隔一段时间执行第二条。又不费事,也能减轻服务器压力。
#5
there is a package called logrotate...
#6
source /etc/profile
find /weblog10/bea/user_projects/log/task/schedule/ -name "*.log" -mtime +7 -exec tar cvf /weblog10/bea/user_projects/log/task/schedule/backup/task-`date "+%y%m%d"`.tar {} \;
find /weblog10/bea/user_projects/log/task/schedule/ -name "*.log" -mtime +7 -exec rm -f {} \;
把以上3行代码保存为 test.sh,依次执行下面两个命令:
chmod +x test.sh
./test.sh
看看是否报错
#7
先find出文件出来,然后备份清除