拉开窗帘着实吓一跳,马上微信金牌物业,立马派人上门搞定,师傅说这事经常有,可见生态要多好
作者:仁杰
十年少爬的白云山近期要一次性全补上
可惜没有庐山那种终身卡,要不然更有收藏欲望。。。
浏览器书签功能脚本导入文件模版
今天用bookmark script快速实现了一个小功能想分享给朋友
为了将使用过程包装成足够简单易用,我想到了用书签文件交流这种方式
本以为用浏览器导出对应的书签即可,没想到大部分的浏览器只有全部导出功能
于是非常必要有一个最小结构的模版方便随时填充随时交换
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE NETSCAPE-Bookmark-file-1> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> <TITLE>Bookmarks</TITLE> <H1>Bookmarks</H1> <DL> <DT><H3>Script</H3></DT> <DL> <DT><A HREF="javascript:void(alert('test'))">test</A></DT> </DL> </DL> |
odoo.py auto-reload dev自动重启服务ENOSPC系统错误解决
Odoo8:
正常环境下直接–auto-reload参数运行缺库错误
1 |
ImportError: No module named pyinotify |
pyinotify是一个Python模块,用来监测文件系统的变化
pyinotify依赖于Linux内核的inotify功能,是一个事件驱动的通知器,其通知接口通过三个系统调用从内核空间到用户空间
pyinotify结合这些系统调用,并提供一个顶级的抽象和一个通用的方式来处理这些功能
安装
pip install pyinotify
运行时错误:
1 2 3 |
pyinotify.py", line 1943, in add_watch self._inotify_wrapper.str_errno())) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 6: ordinal not in range(128) |
Odoo9:
正常环境下直接–dev参数运行日志警告
1 |
WARNING ? openerp.service.server: 'watchdog' module not installed. Code autoreload feature is disabled |
Watchdog是一个跨平台的Python库和shell工具,可以监视文件系统事件。超级好用,并且容易上手
安装
pip install watchdog
运行时错误:
1 2 3 |
watchdog/observers/inotify_c.py", line 402, in _raise_error raise OSError("inotify watch limit reached") OSError: inotify watch limit reached |
Node:
想起来当初刚玩node时也时常会遇到这个错误
不过大多直接sudo运行就可解决,简单理解权限问题也没有深究
但是odoo不能这么搞,源码限制:
1 |
Running as user 'root' is a security risk, aborting. |
还好从odoo9的报错信息里显而易见问题出自底层inotify对一般用户的限制
简单学习了下,得知其有个max_user_watches的内核参数限制普通用户一次最多关联监控个数。一般默认值8192,对于odoo这种大工程或稍大一点的node项目来说明显是不够用的
先通过如下方式验证:
1 2 |
[srj@x1c /]$ cat /proc/sys/fs/inotify/max_user_watches 8192 |
然后通过su切换root身份动态更新配置值放大64倍
1 |
[srj@x1c /]$ su -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches' |
接着用不同版本的启动参数运行即可看到AutoReload watcher running成功了
1 2 |
INFO ? openerp.service.server: Watching addons folder /home/srj/.local/share/Odoo/addons/8.0 INFO ? openerp.service.server: AutoReload watcher running |
最后还需要将动态修改的参数通过静态配置方式固化下来,否则每次重启还需要重复修改
Centos7下我不建议直接修改/etc/sysctl.conf文件配置,而是通过sysctl.d目录新建独立配置
1 2 3 4 5 |
[root@x1c sysctl.d]# pwd /etc/sysctl.d [root@x1c sysctl.d]# echo fs.inotify.max_user_watches = 524288 > 91-inotify.conf [root@x1c sysctl.d]# cat 91-inotify.conf fs.inotify.max_user_watches = 524288 |
然后重新启动或者使用
1 2 3 4 |
[root@x1c sysctl.d]# sysctl --system * Applying /etc/sysctl.d/91-inotify.conf ... fs.inotify.max_user_watches = 524288 * Applying /etc/sysctl.conf ... |
sysctl命令system参数立刻生效
海南万宁新中农场
每个人心中都有一个自己的农场梦
国庆外面熙熙攘攘,但这里可以找到内心久违的平静
Linux centos yum install odoo rpm postinstall scriptlet
众所周知,odoo官方提供了非常方便的yum安装源用于一键安装
只需先根据版本配置源
odoo8
1 |
yum-config-manager --add-repo=https://nightly.odoo.com/8.0/nightly/rpm/odoo.repo |
odoo9
1 |
yum-config-manager --add-repo=https://nightly.odoo.com/9.0/nightly/rpm/odoo.repo |
之后即可一键自动解决依赖安装
1 |
yum install -y odoo |
相信源码安装过的同学都一定很好奇
这么繁琐复杂的细节居然可以全部包装到一个rpm包里透明掉了
还有那么多依赖库,怎么可能yum里全部都有
带着这种疑问认真研究了下
才知道rpm包内除了相应的程序,还可能有pre和post install两个shell脚本
分别对应安装前和安装后执行
以下为8.0版本latest rpm包为例,其中文注释为本人补充方便整体理解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
rpm -qp --scripts odoo_8.0.latest.noarch.rpm postinstall scriptlet (using /bin/sh): #!/bin/sh #错误立即退出 set -e #配置目录 ODOO_CONFIGURATION_DIR=/etc/odoo #配置文件 ODOO_CONFIGURATION_FILE=$ODOO_CONFIGURATION_DIR/openerp-server.conf #数据目录 ODOO_DATA_DIR=/var/lib/odoo ODOO_GROUP="odoo" #日志目录 ODOO_LOG_DIR=/var/log/odoo ODOO_USER="odoo" #创建系统用户及用户组 if ! getent passwd | grep -q "^odoo:"; then groupadd $ODOO_GROUP adduser --system --no-create-home $ODOO_USER -g $ODOO_GROUP fi # Register "$ODOO_USER" as a postgres user with "Create DB" role attribute su - postgres -c "createuser -d -R -S $ODOO_USER" 2> /dev/null || true # Configuration file mkdir -p $ODOO_CONFIGURATION_DIR # can't copy debian config-file as addons_path is not the same echo "[options] ; This is the password that allows database operations: ; admin_passwd = admin db_host = False db_port = False db_user = $ODOO_USER db_password = False addons_path = /usr/lib/python2.7/site-packages/openerp/addons " > $ODOO_CONFIGURATION_FILE #配置文件权限设置 chown $ODOO_USER:$ODOO_GROUP $ODOO_CONFIGURATION_FILE chmod 0640 $ODOO_CONFIGURATION_FILE # Log mkdir -p $ODOO_LOG_DIR chown $ODOO_USER:$ODOO_GROUP $ODOO_LOG_DIR chmod 0750 $ODOO_LOG_DIR # Data dir mkdir -p $ODOO_DATA_DIR chown $ODOO_USER:$ODOO_GROUP $ODOO_DATA_DIR #系统服务 INIT_FILE=/lib/systemd/system/odoo.service touch $INIT_FILE chmod 0700 $INIT_FILE cat << 'EOF' > $INIT_FILE [Unit] Description=Odoo Open Source ERP and CRM After=network.target [Service] Type=simple User=odoo Group=odoo ExecStart=/usr/bin/odoo.py --config=/etc/odoo/openerp-server.conf [Install] WantedBy=multi-user.target EOF #YUM中没有的Python依赖库部分 easy_install pyPdf vatnumber pydot psycogreen |
可见诸多内幕与细节全都在这段脚本里完美体现了
知己知彼,剖析清楚每一行代码后,对基于源代码的个性化定制安装部署又有了新的认识
持证后第一次闯荡深圳关
心目中的大理传说
双锂电改装超轻量大续航电动车
早上天亮龙龛码头环海西路出发
晚上天黑回大理城
精疲力尽的将传说中的洱海150+公里环行掉了
苗寨有感
自然醒来发现昨夜一场洪雨唤起了我二十年前第一次仙剑入苗时的点滴
Linux Centos7 ThinkPad X1C无线网卡问题解决记录
折腾了两天,总结下问题
不知是2015款才有的问题还是前面几代内置无线网卡型号不同而不同
话说刚装Centos7系统时
安装向导顺利适配无线网卡并顺畅连接无线网络完成整个安装过程
然而在正常启动登录后,网卡是不适配的,当然除此之外其它驱动都完美适配
初步判断是安装向导自带很多无线驱动
但这些不是全都默认安装的,不过好歹知道是肯定支持的就放心了
查阅大量相关社区讨论及文档阅读后
最终发现这款型号Intel Wireless-N 7265 BN的驱动官方yum源就有:
1 |
iwl7265-firmware.noarch : Firmware for Intel(R) Dual Band Wireless-AC 7265: Series Adapters |
由于无网络连有线口都没,只好先去台式机用yum只下载不安装
1 |
sudo yum install --downloadonly --downloaddir=/home/srj/Downloads iwl7265-firmware |
得到iwl7265-firmware-22.0.7.0-36.el7.noarch.rpm安装包后通过U盘拷贝到小C本地安装
1 |
sudo yum localinstall iwl7265-firmware-22.0.7.0-36.el7.noarch.rpm |
重启后无线网络的小图标久别重逢了
但是好景不长就发现网络虽能连接但及其不稳定
掉包效超高,断线率也不少,经常动不动就全没了
回想安装向导时那驱动还是很稳定服务的,只能怀疑驱动版本问题了,毕竟小C内置的不是双频AC网卡,当然这要在Windows下肯定是一个大驱动全包了
接着又搜寻了许久,最终在
https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
找到了传说中Intel全系列Linux Wireless Driver下载集中地
然后根据Centos7 Kernel 3.10旧内核版本比较其实都不匹配
最终比对了下之前yum源安装的驱动
1 2 3 4 5 |
[srj@x1c firmware]$ pwd /usr/lib/firmware [srj@x1c firmware]$ ll|grep 7265 -rw-r--r--. 1 root root 690452 8月 9 23:40 iwlwifi-7265-8.ucode -rw-r--r--. 1 root root 697828 8月 9 23:47 iwlwifi-7265-9.ucode |
发现刚好就是iwlwifi-7265-ucode-22.24.8.0.tgz和iwlwifi-7265-ucode-25.228.9.0.tgz里的两同名文件
那要么先升级内核要么病马当活马医
立即下载解压覆盖重启解决所有问题
稳定顺畅的网络总算在新设备新系统的折腾上划了一个圆满的句号