linux日志脚本
#!/bin/bash
#SystemDate
date=$(date +%Y%m%d)
source_url=日志现存路径
target_url=将原日志备份的路径
cp $source_url/logname $target_url/logname_$date
cat /dev/null > $source_url/logname
原日志需要以>>方式输出到logname
例:命令>>logname&
❷ linux的日志服务器中,如何用脚本将日志按年归档进指定目录
在脚本nohup设置每天开始拷贝日志作为前一天的日志备份,然后把当前日志清空即可,代码如下:
crontab-e
//增加:
00***cp/dirname/logfile.log/bakdir/logfile.`date-dyesterday+%Y%m%d`.log;cat/dev/null>/dirname/logfile.log
//每周日凌晨1:00打包、删除文件:
01**0cd/bakdir;find./+mtime7-exectarcvflogfile.`date-dyesterday+%Y%U`.tar{};;find./-mtime91-execrm-f{};
❸ linux 清除前一天日志的脚本
Linux有正常的日志的轮替,即:把现在的日志重命名然后再产生新的日志文件,可以利用这个原理来清空当前的日志文件,而不会导致以前的日志流失!这样的话你可以设置你的日志文件为每天一轮换,则当前日志文件内的信息就是今天的日志!
vi/etc/logrotate.conf 把其中的weekly或者monthly改为dayly就行!
❹ Linux shell脚本按日期 切割pm2日志
linux shell脚本按日期 切割pm2日志 (解决定时任务pm2命令无法执行问题,原因:没有环境变量)
首先在输入命令echo $PATH 拿到当前系统环境变量
然后在/root/.pm2目录新建cutlog.sh文件(注意:第一句一定要有,设置当前shell脚本里面的环境变量,没有的话pm2命令会无法执行)
PATH=/root/.nvm/versions/node/v6.10.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
CURPATH=/root/.pm2
OUTPATH=/home/cutLogsDate
mkdir -p $OUTPATH
INPUTPATH=$CURPATH/logs
reloadProcessLogs(){
logFilesGame="${INPUTPATH}/$1"
yesterday=`date -d last-day '+%Y%m%d_'$2`
logOfLastDay=$OUTPATH/$yesterday.log
mv $logFilesGame $logOfLastDay
touch $logFilesGame
echo "切割$1成功"
}
reloadProcessLogs 'game-out-0.log' 'game_out'
pm2 reloadLogs设置定时任务
输入crontab -e命令编辑
0 3 * * * sh /root/.pm2/cutlog.sh
❺ linux 备份结果输出到日志脚本
给你讲一下Linux下的
先创建个嫌隐贺备份脚本的文件保存为backup.sh,然后让corn在指定时间运行就可以了
备份脚本内容:
cp -r 日志目录 要备份的目录
tar -zcvf bak$(date +%Y%m%d).tar.gz 要备份的目录 //将数据所在文件夹bak打包
呵呵,很简单,携卜复制、打包就ok了
然后就是计划任务了
修改crontab内容
#crontab -e
* * * * * /脚本所在完整路径/backup.sh
如:22 11 1 * * /home/backup.sh 就是每月的1号11点22分执行home下的backup.sh脚本
前面五个字段分别表示分钟、小时、日、月、星期几(0-6)后面的为脚本所在目录
3,重新启动crond服务
#service crond restart
如果没有安装crond服务就先装上服务再说,用service crond status可以查看该服务状态
windows的也是差不多,也是复制打包芹派的,然后就计划任务就ok了
❻ Linux 系统 shell脚本定时 清空系统日志文件
其实没有必要写shell脚本,简单一句话放在系统定时任务里就行了。
比如你的日志文件名叫a.log。路径为/tmp/a.log;
那么你可以写个定时任务,这样做:crontab -e 进入定时任务器,然后把下面这段写到里面
00 02 * * * echo " " >/tmp/a.log
然后保存退出就可以了。这段内容意思是,每天凌晨2点自动清空a.log内容。你也可以自己定义多久清一次。比如想10分钟清一次,就这么写*/10 * * * * echo " " >/tmp/a.log。具体的crontab时间定义你可以去网络查查。希望对您有用!
❼ Linux系统下nginx日志每天定时切割的脚本写法
下面是deepvps自己用的自动每天定时切割Nginx日志的`脚本,很方便很好用,推荐给大家使用。本脚本也是参考了张宴老师的文章,再次感谢张宴老师。
1、创建脚本/usr/local/nginx/sbin/cut_nginx_log.sh
vi /usr/local/nginx/sbin/cut_nginx_log.sh
输入以下内容:
#!/bin/bash
# This script run at 00:00
# The Nginx logs path
logs_path=”/home/www/logs/”
mkdir -p ${logs_path}$(date -d “yesterday” +”%Y”)/$(date -d “yesterday” +”%m”)/
mv ${logs_path}access.log ${logs_path}$(date -d “yesterday” +”%Y”)/$(date -d “yesterday” +”%m”)/access_$(date -d “yesterday” +”%Y%m%d”).log
kill -USR1 `cat /usr/local/nginx/nginx.pid`
2、设置crontab,每天凌晨00:00切割nginx访问日志
crontab -e
输入以下内容:
00 00 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh