网站首页 > 技术教程 正文
Nginx日志切割并计划任务自动上传到FTP服务器
枫城浪子原创,转载请标明出处!
双击加关注!经常更新!
一、简述
Nginx WEB服务器每天会产生大量的访问日志,而且不会自动地进行切割,如果持续天数访问,将会导致该access.log日志文件容量非常大,不便于SA查看相关的网站异常日志,并且后期进行分割非常不易。
日志分割可以基于Shell 脚本结合Crontab计划任务对Nginx日志进行自动、快速的切割,其切割的方法使用mv命令即可!
二、配置
安装vsftp服务器端
1
[root@localhost ~]# yum -y install vsftpd
本地安装ftp命令,否则会提示ftp: command not found
1
[root@localhost ~]# rpm -Uvh http://mirror.centos.org/centos/6/os/x86_64/Packages/ftp-0.17-54.el6.x86_64.rpm
自动切割Nginx日志与自动上传到FTP服务器的shell脚本如下:
#by fengchenglangzi
#auto cut nginx log
########################
#!/bin/bash
#2019-8-17 08:28:58
#by fengchenglangzi
#auto cut nginx log
########################
NGINX_LOG_FILE="/usr/local/nginx/logs/access.log"
DES_LOG_DIR="/data/backup/nginx/logs"
DES_LOG_FILE="$DES_LOG_DIR/access_$(date +%Y%m%d%H)"
echo -e "\033[32mPlease wait start cut shell scripts!\033[0m"
sleep 1
if [ ! -d $DES_LOG_DIR ];then
mkdir -p $DES_LOG_DIR
echo -e "\033[32m$DES_LOG_DIR created!\033[0m"
fi
mv $NGINX_LOG_FILE $DES_LOG_FILE
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
echo -e "\033[32mNginx log cutting successfully completed!\033[0m"
ftp -n << EOF
open 192.168.8.194
user nginx nginx
binary
#使用二进制
cd /home/nginx/
#进入ftp服务器目录
lcd $DES_LOG_DIR
#进入本地目录
prompt
#打开prompt模式,一般prompt模式在使用多文件传输中才用到,默认为打开状态。如果prompt模式未打开,命令mput和mget将会传输目录中的所有文件
put $(echo $DES_LOG_FILE|awk -F"/" '{print $NF}')
#如果直接调用$ DES_LOG_FILE变量会报错,因为这个变量是一个绝对路径,由于上面调用了lcd命令,所以位置就已经处于$DES_LOG_DIR目录下,此时直接调用的话远程ftp服务器是无法识别这个路径的,所以这里直接取最后的日志文件名即可
close
bye
EOF
将以上脚本添加到任务计划
默认情况下所有的任务计划都会放到下面的目录中,而且默认是没有任何计划的
[root@localhost ~]# ll /var/spool/cron/
total 0
[root@localhost ~]#
执行下面命令可以创建当前用户的计划任务
[root@localhost cron]# crontab -e
no crontab for root - using an empty one
0 0 * * * /bin/sh /root/auto_cut_nginx_log.sh >>/data/backup/nginx/nginx_cut.log 2>&1
保存后,在目录中就会出现当前用户命名的计划任务了
[root@localhost cron]# cd /var/spool/cron/
[root@localhost cron]# ll
total 4
-rw------- 1 root root 92 Aug 17 19:15 root
[root@localhost cron]# cat root
0 0 * * * /bin/sh /root/auto_cut_nginx_log.sh >>/data/backup/nginx/nginx_cut.log 2>&1
[root@localhost cron]# crontab -l
0 0 * * * /bin/sh /root/auto_cut_nginx_log.sh >>/data/backup/nginx/nginx_cut.log 2>&1
[root@localhost cron]#
以上就是Nginx日志切割并添加到任务计划事例!
猜你喜欢
- 2024-10-11 文件上传漏洞是什么?这么通俗易懂的讲解真的很难得!
- 2024-10-11 记录一次Ng+.NetCore大文件上传的错误排查
- 2024-10-11 php nginx 修改文件上传最大大小(nginx 文件大小限制)
- 2024-10-11 利用Nginx实现免上传安装zabbix agent
- 2024-10-11 Nginx入门到实战-常见问题(nginx操作)
- 2024-09-21 H5+JAVA的文件上传,断点续传(h5加java)
- 2024-09-21 运维必备核心技能-nginx实现web服务配置
- 2024-09-21 如何用 Python 快速实现 HTTP 和 FTP 服务器
- 2024-09-21 实战Django:轻松解决上传图片无法显示的问题
- 2024-09-21 如何实现大文件上传、断点续传、切片上传
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)