问题 最近我们遇到了一个问题,我们有的Job是常驻的,输出的日志是固定为了,例如如下命令(once.sh 是一个死循环的脚本),这样所有的命令都要输出日志到 notice_wechat.log{ /bin/sh jobs/bin/once.sh notice/wechat ;} >> /data/logs/jobs/notice_wechat.log 2>&1 如果使用默认的logrotate【logrotate基础传送门】的配置,就会重命名然后生产一个新文件,例如 notice_wechat.log_20221020 。但是进程是常驻的,切割之后日志会输出到 notice_we
为什么写这篇文章我个人有一个技术群,里面学什么框架的都有,经常会有人问 某某功能 在 哪个框架怎么实现,用什么框架实现更好,说道这里我大家讲一个同类型问题的笑话某女:你能让这个论坛的人都吵起来,我今晚就跟你走。某软件工程师:PHP是最好的语言!某论坛就真的炸锅了,各种吵架../..某女:服了你了,我们走吧,你想干啥都行。某软件工程师:今天不行,我一定要说服他们,PHP必须是最好的语言大家注意重点哦(可能有同学会说 活该单身狗 哈哈),这边文章的标题 就和这个语言争论是一样没有最好,只有更适合和语言之争一样,框架一样没有那个最好这种说法,只有更适合。这里的更适合我要给大家解释下。更适合是 你非常了解一个框架 ,一定要注意不是因为你使用过 就一定更适合,因为只有你认证了解过 在出现极端问题才知道怎么解决更适合是 你当前技术栈选择,例如公司大部分人都会Yii2 框架,你说我们选择个tp5,你这不是折腾人嘛,多人的智慧还是可取的更适合是 相对而言 文档比较丰富,不然新人学习成本很高的其实真有最好
前言前面我们简单介绍了composer的安装 以及 如何安装库本文目的主要实战讲解如何使用库,主要是PSR-0 和 PSR-4的区别,以及如何在代码中引用。关于PSR-0和PSR-4的具体区别可以参考博文 PSR : php编码规范演示代码演示代码都在 https://github.com/apanly/composer_helloworld 中,有兴趣的可以clone实战内容引用资源phpoffice/phpexcelmonolog/monologapanly/browser-detector (本人自己的库,后续会讲解如何创建自己的库) composer.json文件如下{
"require":{
"phpoffice/phpexcel": "1.8.0",
&nbs
服务器经常会产生各种各样的日志文件,我们需要定期清理日志的分类系统日志应用日志系统日志例如系统的history 历史信息 crontab的运行日志 一般系统日志系统都帮我们运维好了,不需要额外配置应用日志例如nginx 的access 和 error 日志 ,php框架的运行日志,这些日志是我们排查问题的有力证据工具logrotatelogrotate是什么logrotate是大多数linux系统自带的日志切割工具logrotate的适用场景logrotate常用来切割仍在被写的“动态”文件,它支持 按时间间隔或文件大小 来触发文件的自动切分(automatic rotation)实战按天保存一周的Nginx日志压缩文件,保留30天,配置文件为「/etc/logrotate.d/nginx」最后代码如下(本人ubuntu系统)/data/logs/nginx/*.log {
&nb
今天手贱,看到mysql 的日志在/var/log/mysql下面。总是觉得别扭,于是就想改变日志的位置,本人开发环境 vagrant + ubuntu12.04 ,在/etc/mysql/mysql中修改了general_log的位置,放在/data/logs/mysql下面然后重启服务,service mysql restart查看错误日志发现说 /usr/sbin/mysqld: File '/data/logs/mysql/mysql.log' not found (Errcode: 13)150830 0:02:44 [ERROR] Could not use /data/logs/mysql/mysql.log for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on
1.mysqlbinlog工具使用方法如下:先使用 show binary logs 查看在使用导出命令mysqlbinlog -R -uroot -pxxxx -hxxx.xxx.xxx.xxx -d db_name --base64-output=decode-rows --start-datetime='2015-08-13 13:11:21' --stop-datetime="2015-08-13 13:18:21" mysql-bin.000008 > mysql-bin.ran_trade_08_13.sql2.mysqldump使用方法如下:# 备份单个数据库
mysqldump --skip-opt -u