建议各商家加上如下代码

*建议各商家加上如下代码

修改 nginx access.log日志的时间格式

因为要获取nginx访问信息,作为开发的数据使用,但是nginx的access.log文件中的默认的时间格式是这样的:

  [02/Nov/2017:20:48:25 +0800]

  而要求的格式类似如下:

  [2017-11-02 20:52:06]

方法都几种,但是修改源码的方法看上去麻烦,做起来也简单,我这边修改了源码(把原来的删了,复制新的),重新编译

  1.修改src/http/modules/ngx_http_log_module.c  

{ ngx_string("time_local"), sizeof("28/Sep/1970:12:00:00 +0600") - 1,
ngx_http_log_time },

修改后:
{ ngx_string("time_local"), sizeof("1970-09-28 12:00:00 +0600") - 1,
ngx_http_log_time },

return ngx_cpymem(buf, ngx_cached_http_log_time.data,
ngx_cached_http_log_time.len);

修改后:
return ngx_cpymem(buf, ngx_cached_err_log_time.data,
ngx_cached_err_log_time.len);

2、修改 src/core/ngx_times.c 140行

(void) ngx_sprintf(p1, "%4d/%02d/%02d %02d:%02d:%02d",
tm.ngx_tm_year, tm.ngx_tm_mon,
tm.ngx_tm_mday, tm.ngx_tm_hour,
tm.ngx_tm_min, tm.ngx_tm_sec);

修改后
(void) ngx_sprintf(p1, "%4d-%02d-%02d %02d:%02d:%02d",
tm.ngx_tm_year, tm.ngx_tm_mon,
tm.ngx_tm_mday, tm.ngx_tm_hour,
tm.ngx_tm_min, tm.ngx_tm_sec);

  3.备份一下配置文件(小心一些好)

  4.重新编译,参数还是用原来的吧

5. make && make install 之后重启nginx就行了

解决 mv: Argument list too long 问题

解决 mv: Argument list too long 问题

这个文件一般都是目录下 文件太多引起的
这个”太多” 不是固定的, 而是内核预定的

可以修改 改为
ulimit -s unlimited

就好了

当然通过rsync 或者 for 循环 都可以
但是麻烦啊
…..

PHP读取文本文件 换行尾巴的问题

Hello
World
John
play
football

这个文本文件 如果编码不一样
结果也不一样

如果这样替换
$lines = file(‘file.txt’);
$string = str_replace(array(“\r”, “\n”), ”, $lines)
会有换行的尾巴

可以这样
$lines = file(‘file.txt’, FILE_IGNORE_NEW_LINES);

如果需要去掉空行 可以这样
$lines = file(‘file.txt’, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

另外一个方法
$file = ‘newline.txt’;
$data = file_get_contents($file);
$lines = explode(PHP_EOL, $data);

CentOS7 e1000 / 82574 网卡系列的bug和修复

这个也算是个奇葩问题了
这么多年就是不能打个补丁

这破问题 害我损失不少客户

无语了,我要换硬盘,你每次给加硬盘什么意思……

无语了,我要换硬盘,你每次给加硬盘什么意思……

有几台古董机器配的老硬盘 几年了 最近Raid报警
过去几个月一直在换,联系机房值班
原来搭配的N块盘,每次有盘坏了就给我加一块
坏盘也不给我拔掉,真鸡巴懒
结果现在挂了一堆硬盘了……

FFMPEG 硬件转码 GPU CUDA9 问题

FFMPEG 硬件转码 GPU CUDA9 问题

傻逼了又,头脑发热升级下驱动版本
结果出现灵异问题
驱动安装和CUDA那些没错

编译FFMPEG出现
ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
查询了下cuda9才又这个错误,好像是pkgconfig里命名导致问题

修复方式
cd /opt
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
make install

在编译遇到
ERROR: cuvid requested, but not all dependencies are satisfied: cuda
我很确认 cuda是安装好了的
卸载,重新安装,ldconfig 这个问题神奇的没了

这样就算升级成功

测试下

没问题

N卡官方
https://developer.nvidia.com/ffmpeg

seafile专业版 破解

0001. seafile:
关于seafile的介绍请自行百度,其实官方是提供了专业版的,而且免费的专业版跟付了钱买的专业版功能上没有任何区别,主要是免费的只能注册三个用户。(百度上也貌似找不到专业版的破解版)
虽然说是可用的状态,但是我的感觉是十分蛋疼。毕竟有强迫症在作怪,正好作为小白的我可以用这个程序来练练手。

0010.破解:
详细的破解过程就不在此进行阐述,主要是对限制人数进行了破解使其突破3人的限制。(将其修改为1000人)
破解的版本为目前的最新版本 6.2.9
大致分析及破解过程如下:
该程序是由python和C编写,前台使用了python的django框架。
安装好运行之后添加4个用户,根据报错信息追踪代码调用位置。
最后发现判断人数是否超限的代码就在 seafile-pro-server-6.2.9/seahub/seahub/utils/licenseparse.py 文件中:

难道真的就么简单??,于是把3改为1000,重启服务。
继续添加用户,不过这时候错误变成了添加用户失败。果然没那么简单!
继续追踪分析python代码,最后发现基本上所有的操作(比如添加用户,更换邮箱,删除用户)都是使用rpc进行通信调用C语言程序进行的操作。
这时候突然想起启动时控制台的输出信息,于是使用IDA进行静态分析。从 seafile-pro-server-6.2.9/seafile/bin/ccnet-server 文件中发现了端倪。
进行text搜索 :license 果不其然,决定使用人数的代码就在其中。(文件删了后我也懒得下,所以就不放图了,后面的就自行分析吧)。
不过最初我是想做个注册机出来,最后发现程序使用RSA来验证授权文件,所以如果做注册机还需将程序中的公钥替换成我的,这样还不如直接修改人数限制来的简单粗暴。

0100.下载链接:
不知道为什么官网也是放出了一个Ubuntu的版本?所以顺带也破解了。

Ubuntu 版:https://pan.baidu.com/s/1w2jZcoOYKAec1eurHPJVEw 密码:xz2z

百度网盘:https://pan.baidu.com/s/1bYVO_KfWqFbX8vZQwIr7HA 密码:zayr

demo站点:https://pan.deny.cx

文件都是从官网下载的,然后进行了破解,后门病毒之类的应该不存在的吧?(大家请放心,我技术这么渣想加也加不了啊)

0101.安装教程官方的文档都有
安装方法就按照官方的说明来就是了。

0110..侵删;

4.x的内核,在部分CentOS7系统下会异常

4.x的内核,在部分CentOS7系统下会异常
不是特别稳定,测试差不多的配置, 4台机器
3.x的内核正常
尝试升级到4.x 会出现负载升高,失去响应的问题

这个各种因素影响比较大,所以也没时间定位哪里触发的崩溃