= new JLabel("请选择目标文件夹:"); centerPanel.add(label_2); label_2.setBounds(20, 50, 150, 30); field_2 = new JTextField(40); centerPanel.add(field_2); field_2.addActionListener(listener ); field_2.setBounds(130, 50,200, 30); //用来获取源文件(要切割的文件) button_1= new JButton("选择",new centerPanel.add(button_2); button_2.addActionListener(listener); button_2.setBounds(350 private void showFailedInfo() { JLabel label_result = new JLabel("打开源文件失败,可能之前切割文件已存在请清理后再切割
nginx泡得太久,日志就越来越大,有必要对其切割下,也便于按天统计访问量神马的。 没啥难度,短短几行的脚本即可 #! /usr/bin/mv $WWW_LOG_NAME $(date +%F -d 'yesterday')_$WWW_LOG_NAME /usr/bin/mv $B2B_LOG_NAME $(date /bin/kill -USR1 $NGX_PID 加到cron计划任务中 echo "0 0 * * * /home/scripts/rotate-nginx-logs.sh > /dev/null 2> 并给相关权限 postrotate kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` endscript } 保存退出即可每天自动切割日志 解决方法:1. vi /var/lib/logrotate/status 更改相对应的文件操作日期 2.
那么其中的reopen,就是我们今天的主角,我们可以使用reopen来实现日志切割。 原理解析: 发送信号,其实是执行: kill -USR1 `cat /usrlocal/nginx/logs/nginx.pid` 以上两种方式都可以实现日志切割,你可以任意选择。 定期执行: 日志切割时企业中常规动作,我们不会每天去手工执行一遍命令,通常是让脚本自己执行,于是我们可以将这个动作写进任务计划,每天凌晨自动执行。 脚本: #! -eq 0 ];then echo "$(date +%F) 日志切割成功" fi 写入任务计划: 在/var/spool/cron/root文件中添加如下代码,每天11:59分自动切割日志 : 59 23 * * * /bin/sh nginx_cut_log.sh >>/tmp/nginx_cut.log 2>&1 到这里简单的日志切割工作就完成啦。
两款图片切割工具 ShoeBox:http://renderhjs.net/shoebox/ 下面试下ShoeBox。ShoeBox是一个图片处理软件,体积很小。 我主要用第三个功能拆开图片。
我们只需要配置你所需要切割的参数就可以。 很多程序的会用到logrotate滚动日志,比如nginx。它们安装后,会在/etc/logrotate.d这个目录下增加自己的logrotate的配置文件。 /etc/logrotate.conf include /etc/logrotate.d 常见参数 dateext: 切割的日志带上日期 monthly: 日志文件将按月轮循。 定制化nginx日志切割 /var/log/nginx/*.log { daily dateext missingok rotate 14 fi \ endscript postrotate invoke-rc.d nginx rotate >/dev/null 2> logrotate /etc/logrotate.conf # 要为某个特定的配置调用logrotate logrotate /etc/logrotate.d/log-file 调试配置 模拟日志切割
1.nginx_log_rotate.sh文件 #nginx日志切割脚本 #author: joshau317 #! /bin/bash #1.设置日志文件存放目录,假设你的nginx的日志存在这个目录里 logs_path="/data/logs/nginx/" #2.设置pid文件,这个根据你自己的环境,找到nginx.pid mv $log_file_name $new_log_path; fi done #5.向nginx主进程发信号重新打开日志 kill -USR1 `cat ${pid_path}` 2.
日志切割 当网站访问量大后,日志数据就会很多,如果全部写到一个日志文件中去,文件会变得越来越大,文件大速度就会慢下来,比如一个文件几百兆,写入日志的时候,就会影响操作速度. 手动切割 --进入日志目录 cd /usr/local/nginx/logs/ --重命名日志文件 [root@host1 logs]# mv access{,. 'access.log'文件的文件名,但是原文件描述符与文件本身的对应关系仍然存在 所以,重命名后,我们需要让nginx重新打开一个新文件,以便将新的日志写入到新文件中 编写脚本 --编写脚本实现日志切割 endscript结尾,命令需要单独成行 endscript 重启nginx日志服务,写入到新的文件中去,否则会依然写入重命名后的文件中 启动 --启动'logrotate'并且指定配置文件切割
考虑到日后日志大小过大,NodeJs读取会花太多时间,所以是要按天来切割日志,刚开始我写了一个简单的脚本。利用 crontab 的定时功能。
牵手GitHub.jpg 目录 1.GitHub 和 Git 的前世今缘 2.Git 的下载安装 2.1Git 下载 2.2Git 安装 3.Git 的初始配置 3.1查看安装的 Git 的版本 2 Git 的下载安装 ---- 以 windows 环境下安装为例,Linux 和 Mac 系统请自行查找 Git 安装资料 2.1 Git 下载 Git的官方下载地址 ? 下载Git2.png 如果你的下载速度较慢,也可以选择去软件应用中心下载,这里也推荐一个百度软件下载中心,但里面的软件不一定是最新的,还是建议在官网上下载的。
article/details/80158062 本文出自方志朋的博客 个人博客纯净版:https://www.fangzhipeng.com/docker/2018/09/11/dokcer-trans2. 应用程序部分 创建2个文件,requirements.txt和app.py,并且将它们放到和Dockerfile放进同一个文件夹中。这就完成了我们的应用,你可以发现用创建应用很简单。 import os import socket # Connect to Redis redis = Redis(host="redis", db=0, socket_connect_timeout=2, 为该上下文提供存储库并标记有意义的名称,例如get-started:part2。 这将图像放入启动存储库并将其标记为part2。 现在,把它放在一起来标记图像。 $ docker run -p 4000:80 john/get-started:part2 Unable to find image 'john/get-started:part2' locally
1 安装cronolog 1[root@app_51 ~]$ yum install -y cronolog 2[root@app_51 ~]$ which cronolog 3/usr/sbin/cronolog 2 修改tomcat的catalina.sh 1 [ghl@app_51 ~]$ cd /home/ghl/tomcat/apache-tomcat-8.5.37/bin/ 2 [ghl@app_ -Djava.io.tmpdir="$CATALINA_TMPDIR" \ 18 org.apache.catalina.startup.Bootstrap "$@" start 2> -Djava.io.tmpdir="$CATALINA_TMPDIR" \ 26 org.apache.catalina.startup.Bootstrap "$@" start 2> -z "$1" ]; then 36 echo $1 | grep "[^0-9]" >/dev/null 2>&1 37 if [ $?
该命令用于将一个文件分割成多个,默认每1000行切割成一个小文件。 参数 说明 -d 以数字为后缀,如果省略,则以字母为后缀 -b 输出每一个文件的大小 # 切割文件 split -b 10M -d aaa.tar.gz aaa # 合并文件 cat aaa0* >
logs/error_notice.log notice; error_log logs/error_info.log info; ##可以将不同的错误类型分开存储 日志切割 向nginx主进程发信号重新打开日志 kill -USR1 `cat /run/nginx.pid` chmod +x logaccess.sh 设置定时任务 crontab -e #每分钟进行日志切割 */1 * * * * sh /root/logaccess.sh > /dev/null 2>&1 按日切割: vim log2.sh #! `cat /run/nginx.pid` 设置定时任务 crontab -e #每天23:59分开始执行 59 23 * * * sh /root/logaccess.sh > /dev/null 2>
背景 nginx的日志默认是不会自动切割的,所以日志体积会越来越大,因此有必要对日志进行切割 nginx日志切割实现方式 脚本切割 logrotate 脚本切割 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 切割脚本 #! https.log LOG_ERR_NAME=novel2_https_err.log #按天切割 test -d ${LOGS_PATH}/${D} || mkdir -p ${LOGS_PATH}/ $py send.py chenfei@clickwise.cn "del log warnning" "del $D faild" fi } ngx 切割后的日志 2 root root 4096 Mar 2 00:01 2018-03-01 -rw-r--r-- 1 www root 23428717 Mar 2 11:48 novel2_https_err.log
# 日志切割脚本 脚本如下 注:安装zip命令 #!
考虑到日后日志大小过大,NodeJs读取会花太多时间,所以是要按天来切割日志,刚开始我写了一个简单的脚本。利用 crontab 的定时功能。
Mongodb日志切割 依据客户端查询来设计集合的片键及索引,最近几天突然需要查询历史数据进行分析,我们的有些集合count达到亿条以上,每个文档几百个字段。 遇到问题第一反应是看日志文件,拿到notepad之后由于文件太大无法打开,只能采用重启,然后开始查询mongodb日志管理的文档。Mongodb官网提出可以对日志进行切换。 2.syslog 利用syslog选项,使用系统的logrotate,这种情况下不再需要开启logpath选项,还没有进行深入的了解。 当kill -2时,程序没有被杀死,直接使用kill -9 ,进程进入了僵尸状态,该进程就无法再接收任何的信号。 这种情况下必须 ps –ef 得到ppid然后先杀掉父进程,作为子进程将会随后死亡 2、 在mongodb查询过程中可以使用maxTimsMS来限制查询的时间,避免长时间的查询造成数据库的死亡。
m_levelNo = levelNo; getOGRGeoTransform(); // 获取图层参数信息 this->tilesize = tilesize; double level = scale2Level tilesize*level; double startY = y * tilesize*level; double xx, yy; TDRasterCommon::ImageRowCol2Projection tilesize*level; double startY = y * tilesize*level; double xx, yy; TDRasterCommon::ImageRowCol2Projection
这是一段Linux的Shell脚本,用于切割Nginx的日志,可通过crontab设置每日零点执行这段脚本实现自动切割。 #!
nginx的日志文件如果你不处理,将变得越来越大,我们可以写一个nginx日志切割脚本来自动切割日志文件。 第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。 nginx日志按日期自动切割脚本cut_nginx_log.sh如下: #!