#!/bin/bash
inotifywait -mrq --timefmt '%y%m%d%H%M' --format '%T %w%f %e' --event delete,modify,create,attrib /data/web | while read date file event
do
case $event in
MODIFY|CREATE|MOVE|MODIFY,ISDIR|CREATE,ISDIR|MODIFY,ISDIR)
echo $event' - '$file' - '$date >> /var/log/web_watch.log
;;
MOVED_FROM|MOVED_FROM,ISDIR|DELETE|DELETE,ISDIR)
echo $event'-'$file'-'$date >> /var/log/web_watch.log
;;
esac
done
好东西,inotify
php的inotify扩展提供了监控文件或目录的功能,可以用来实现,服务的热更新,或安全监控。
inotify一共提供了5个函数:
1、inotify_init() 用于初始化一个实例,返回的是一个 stream 资源对象,可以被标准stream函数使用,如stream_set_blocking()。
2、inotify_add_watch() 将一个文件或目录添加到监控列表中,如果存在,则替换。
3、inotify_read() 从 inotify 实例中读取事件,如果没有返回false,如果有,返回一个 inotify 事件数组。
4、inotify_queue_len() 返回队列中事件的个数,可以理解为系统把 inotify_add_watch 关注的事件一个个加入队列,通过 inotify_read() 读取事件。
5、inotify_rm_watch() 取消监控。
/proc/sys/fs/inotify/max_queued_events默认值: 16384
该文件中的值为调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值得事件被丢弃,但会触发IN_Q_OVERFLOW事件
/proc/sys/fs/inotify/max_user_instances默认值: 128
指定了每一个real user ID可创建的inotify instatnces的数量
/proc/sys/fs/inotify/max_user_watches默认值: 8192
指定了每个inotify instance相关联的watches的上限,也就是每一个inotify实例可监控的最大目录数。如果监控的文件数目巨大,需要根据实际情况适当增加此值得大小。注意: max_queued_events 是 Inotify 管理的队列的最大长度,文件系统变化越频繁,这个值就应该越大!如果你在日志中看到Event Queue Overflow,说明max_queued_events太小需要调整参数后再次使用
在编写页面的时候,经常遇到一些地方的文字显示1行,多余的文字隐藏,这样显示1行的很好控制:
css代码如下:
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
3行代码搞定,这个很常见。但是要是2行文字显示多余隐藏呢,我之前在网上搜到的很多说什么用js去控制,用php控制。。。等等诸如此类的复杂方法,为什么不能同样用css去控制呢?后来找到答案了,用css同样可以去控制2行文字显示多余隐藏。
css代码如下:
text-overflow: -o-ellipsis-lastline; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
更方便的是改变webkit-line-clamp的值还可以实现3、4、5等等多行文字显示多余隐藏的效果~
nagios-4.4.6安装,centos7
手册地址:https://support.nagios.com/kb/article/nagios-core-installing-nagios-core-from-source-96.html
可以完全参考上面的安装方法
我的apache是自己手工安装的,/home/system/apache,在执行make install-webconf的时候,提示失败,看提示是复制到/etc/httpd/conf.d目录了,我没有这个目录,于是手工建立,成功,然后把conf.d/nagios.conf复制到/home/system/apache/conf/extra/nagios.conf
按照提示,安装完毕后,apache启动,nagios启动,但是cgi文件提示下载,打开httpd.conf中的LoadModule cgid_module modules/mod_cgid.so模块,重启就好了
mark,2021.11.26日凌晨
grep的贪婪和非贪婪匹配
grep -oE ‘/Public/v2/.*.png’ xxx.html
grep -oE ‘/Public/v2/.*\?.png’ xxx.html
无效,只能是贪婪模式
grep -oP ‘/Public/v2/.*?.png’ xxx.html
可以获取到所要的结果,不是贪婪模式,后面的?生效.
你正在寻找一种非贪婪(或懒惰)的比赛。 要在正则表达式中获得非贪婪匹配,您需要在量词后使用修饰符grep
。 例如,您可以将grep -P
更改为.*?
。
默认情况下,grep
不支持非贪婪修饰符,但您可以使用grep -P
来使用Perl语法。
php安装inotify扩展
inotify是pecl的扩展之一.
需要pecl扩展库,则需要安装pear
php编译pear,编译参数加–with-pear就可以了
安装完之后在/home/system/php/bin目录会有pecl和pear命令
执行/home/system/php/bin/pecl install inotify
就会安装,安装完后提示你再php.ini文件中加入extension=inotify.so
加入后就完成了
一个update语句,多表条件
update yunqikds_companys left join yun_industry on yun_companys.industry = yun_industry.main set yun_companys.industry = yun_industry.id where yun_companys.industry = yun_industry.main;
where条件必须有
left join TABLE on 条件
再来几个
update yun_companys left join sheet1 on yun_companys.unitcode = sheet1.统一社会信用代码
set yun_companys.unittype=sheet1.企业性质
where yun_companys.unitcode=sheet1.统一社会信用代码
;
update yun_companys left join sheet1 on yun_companys.unitcode = sheet1.统一社会信用代码
set yun_companys.scope=sheet1.经营范围
where yun_companys.unitcode=sheet1.统一社会信用代码
;
update yun_companys left join sheet1 on yun_companys.unitcode = sheet1.统一社会信用代码
set yun_companys.address=sheet1.地址
where yun_companys.unitcode=sheet1.统一社会信用代码
;
windows10的子系统ubuntu的vim无响应解决办法
问题挺严重的,vim运行就无响应,ctrl+ctrl+s,ctrl+q,怎么着都不行,尝试打印vim日志,看起来也没什么进展,升级到ubuntu16,升级到ubuntu20,也不行.按照网上说的卸载vim-common,再安装apt-get install vim,也不行.
后来猜测是windows10的更新补丁导致,查看补丁日志,11.11号有三个更新补丁,于是卸载一个补丁,正常了,如下图
补丁名称是kb5007206
2022.02.10更新:
https://superuser.com/questions/1684867/wsl-issue-vi-vim-and-nano-are-unusable-empty-terminal-screen-same-isue-with
找到个链接:如下图,export TERM=xterm-color
获取状态函数
获取状态 public function getStatus(){ $sql = 'select setup from field as f,(select id as tid from module where name=\'coupons\') as t where t.tid=f.module_id and f.field=\'status\''; $res = Db::query($sql); $arr = unserialize($res[0]['setup']); $strStatus = $arr['options']; // var_dump(explode("\s",$strStatus));die(); //换行用PHP_EOL不行 $arrStatus = var_dump(preg_split('/[\s]+/',$strStatus)); return $arrStatus; }
2018.09.29到现在三年了,就算明天结束,还得两年,操,啥时候是个头
一不小心,惹上事情,耽误了多少事.对自己的影响有多深.