w1100n
This site is best viewed in Google Chrome
wiloon, 11/27/2017 13:01

monit -t # 配置文件检测 monit # 启动monit daemon monit -c /var/monit/monitrc # 启动monit daemon时指定配置文件 monit reload # 当更新了配置文件需要重载 monit status # 查看所有服务状态 monit status nginx # 查看nginx服务状态 monit stop all # 停止所有服务 monit stop nginx # 停止nginx服务 monit start all … Continue reading

wiloon, 11/26/2017 11:44

坚果手机(YQ601)升级到v3.6.0后,微信无法使用,恢复出厂设置仍然如此,只得降级到低版本。 下载系统全量包v2.5.8(链接一、链接二) 将系统包放到手机根目录,然后将手机关机 按住左侧按键上和右侧按键下以及开机键进入Recovery界面 按左侧按键选择“apply update from sdcard”,并按电源键确定 按左侧按键选择“0/”目录,并按电源键进入,再选择系统包并确认,开始刷入系统 耐心等待20分钟左右,系统刷入完成,自动进入Recovery界面 选择“wipe data”并确定,再选择“Yes”并确定,开始清除用户数据,完成后出现Recovery界面选项 选择“wipe cache”并确定,开始清除缓存,完成后出现Recovery界面选项 选择“reboot system now”并确定,手机开始重启,耐心等待约20分钟后进入系统。 http://blog.webish.info/post-23.html

wiloon, 11/24/2017 17:34

Arch Linux启用systemd后,很多服务都被替换掉了,当然syslog也不例外,被Systemd Journal所替代。 systemd拥有强大的处理与系统日志记录功能。在使用其它工具时,日志往往被分散在整套系统当中,由不同的守护进程及进程负责处理,这意味着我们很难跨越多种应用程序对其内容进行解读。 相比之下,systemd尝试提供一套集中化管理方案,从而统一打理全部内核及用户级进程的日志信息。这套系统能够收集并管理日志内容,而这也就是我们所熟知的journal。 Journal的实现归功于journald守护进程,其负责处理由内核、initrd以及服务等产生的信息 journal config /etc/systemd/journald.conf SystemMaxUse=1024M [code lang=shell] # 最近一次重新引导后收集到的日志 journalctl -b # 查看系统上全部来自Nginx单元的日志 journalctl -u nginx.service journalctl -u nginx.service –since today journalctl -u nginx.service –since "2018-06-11 12:00:00" journalctl –since "2015-01-10" –until "2015-01-11 03:00" # 检查当前journal使用磁盘量 … Continue reading

wiloon, 11/24/2017 16:42

http://blog.csdn.net/light_language/article/details/70567962 关于查数据库和表中的数据和索引所占空间的大小的SQL方法: 查询information_schema架构中的tables表。 代码: 查询所有数据库占用磁盘空间大小的SQL语句: select table_schema,concat(truncate(sum(data_length)/1024/1024,2),’MB’) as data_size, concat(truncate(sum(index_length)/1024/1024,2),’MB’) as index_size from information_schema.tables group by table_schema order by sum(data_length) desc; 1 2 3 4 5 这里写图片描述 查询单个库中所有表磁盘占用大小的SQL语句: select table_name,concat(truncate(data_length/1024/1024,2),’MB’) as data_size, concat(truncate(index_length/1024/1024,2),’MB’) as index_size from information_schema.tables where table_schema=’employees’ order … Continue reading

wiloon, 11/24/2017 15:31

http://www.cnblogs.com/studyzy/p/4310653.html 前缀索引,一种优化索引大小的解决方案 今天在读一篇关于数据库索引介绍的文章时,该文章提到了前缀索引,对于我这个搞数据库应用开发那么多年的人来说,这个词还真是一个新词,没用过。于是打算研究一番。 前缀索引似乎是MySQL中的一个概念,在SQL Server和Oracle中没提出这个概念。于是就安装了一个MySQL来做实验,搞清楚前缀索引。 前缀索引说白了就是对文本的前几个字符(具体是几个字符在建立索引时指定)建立索引,这样建立起来的索引更小,所以查询更快。有点相当于Oracle中对字段使用Left函数,建立函数索引,只不过MySQL的这个前缀索引在查询时是内部自动完成匹配的,并不需要使用left函数。 别的文章中提到: MySQL 前缀索引能有效减小索引文件的大小,提高索引的速度。但是前缀索引也有它的坏处:MySQL 不能在 ORDER BY 或 GROUP BY 中使用前缀索引,也不能把它们用作覆盖索引(Covering Index)。 建立前缀索引的语法为: ALTER TABLE table_name ADD KEY(column_name(prefix_length)); 这里最关键的参数就是prefix_length,这个值需要根据实际表的内容,得到合适的索引选择性(Index Selectivity)。索引选择性就是不重复的个数与总个数的比值。 select 1.0count(distinct column_name)/count() from table_name 比如我们现在有个Employee表,其中有个FirstName字段,是varchar(50)的,我们查询该字段的索引选择性: select 1.0count(distinct FirstName)/count() from Employee 得到结果0.7500,然后我们希望对FirstName建立前缀索引,希望前缀索引的选择性能够尽量贴近于对整个字段建立索引时的选择性。我们先看看3个字符,如何: select 1.0count(distinct left(FirstName,3))/count() … Continue reading

wiloon, 11/24/2017 14:51

http://blog.csdn.net/xlgen157387/article/details/50767725 http://blog.51cto.com/janephp/1318705 减少碎片: 合适的query_cache_min_res_unit可以减少碎片,这个参数最合适的大小和应用程序查询结果的平均大小直接相关,可以通过内存实际消耗(query_cache_size – Qcache_free_memory)除以Qcache_queries_in_cache计算平均缓存大小。 可以通过Qcache_free_blocks来观察碎片,这个值反应了剩余的空闲块,如果这个值很多,但是 Qcache_lowmem_prunes却不断增加,则说明碎片太多了。可以使用flush query cache整理碎片,重新排序,但不会清楚,清空命令是reset query cache。整理碎片期间,查询缓存无法被访问,可能导致服务器僵死一段时间,所以查询缓存不宜太大 场景 产品中有一张图片表pics,数据量将近100万条,有一条相关的查询语句,由于执行频次较高,想针对此语句进行优化 表结构很简单,主要字段: user_id 用户ID picname 图片名称 smallimg 小图名称 1 2 3 一个用户会有多条图片记录,现在有一个根据user_id建立的索引:uid,查询语句也很简单:取得某用户的图片集合: select picname, smallimg from pics where user_id = xxx; 1 优化前 执行查询语句(为了查看真实执行时间,强制不使用缓存,为了防止在测试时因为读取了缓存造成对时间上的差别) select SQL_NO_CACHE picname, … Continue reading

wiloon, 11/24/2017 13:19

JavaScript 作为 web 端使用最广泛的编程语言,它是动态语言,缺乏静态类型检查,所以在代码编译期间,很难发现像变量名写错,调用不存在的方法等错误,除非在运行时才能暴露出来,所以非常有必要有一个测试工具来验证你的代码。 karma 就是在这样的背景下产生的, 它是一个 runner , 旨在帮助开发者简单而又快速的进行自动化单元测试, 目前已经用在很多大型的项目, google 和 youtube 这些公司都在用它, 在 npm 官方网站上, 它也是一个比较流行的 npm 模块。 http://taobaofed.org/blog/2016/01/08/karma-origin/

wiloon, 11/24/2017 10:03

http://www.jianshu.com/p/932bcdf2c89f 索引并不会时时发生,有时就算是where查询字段中添加了索引,索引也会失效,下面我们来讲讲五种索引失效的场景。 1.查询条件包含or 查询条件包含or时,可能会导致索引失效: 失效索引 当or左右查询字段只有一个是索引,该索引失效,explain执行计划key=null;只有当or左右查询字段均为索引时,才会生效; 有效索引 2.组合索引,不是使用第一列索引,索引失效 如果select from key1=1 and key2= 2;建立组合索引(key1,key2); select from key1 = 1;组合索引有效; select from key1 = 1 and key2= 2;组合索引有效; select from key2 = 2;组合索引失效;不符合最左前缀原则 3.like 以%开头 使用like模糊查询,当%在前缀时,索引失效;eg: 索引失效 当前缀没有%,后缀有%时,索引有效;eg: 索引有效 4.如何列类型是字符串,where时一定用引号括起来,否则索引失效 不用引号括起来 … Continue reading

wiloon, 11/23/2017 13:28

https://stackoverflow.com/questions/32705582/how-to-get-time-tick-to-tick-immediately/47448177#47448177 https://github.com/golang/go/issues/17601

wiloon, 11/22/2017 15:14

https://tech.meituan.com/mysql-index.html 慢查询优化基本步骤 0.先运行看看是否真的很慢,注意设置SQL_NO_CACHE 1.where条件单表查,锁定最小返回记录表。这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始查起,单表每个字段分别查询,看哪个字段的区分度最高 2.explain查看执行计划,是否与1预期一致(从锁定记录较少的表开始查询) 3.order by limit 形式的sql语句让排序的表优先查 4.了解业务方使用场景 5.加索引时参照建索引的几大原则 6.观察结果,不符合预期继续从0分析 Using filesort MySQL must do an extra pass to find out how to retrieve the rows in sorted order. The sort is done by going through all rows … Continue reading

wiloon, 11/22/2017 14:17

http://wuzhangshu927.blog.163.com/blog/static/1142246872010113093426574/ USING() using可用在join语句相同字段连接,起到和ON相同作用,inner join 和left join中都可以使用 示例: LEFT JOIN 正常写法: SELECT t1.id,t2.name FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE …. 其实也可以这么写: SELECT t1.id,t2.name FROM t1 LEFT JOIN t2 USING(id) WHERE …. HAVING mysql中的where和having子句都可以实现筛选记录的功能,having 可以认为是对where的补充,因为它可以对分组数据进行再次判断,一般跟在group by 后面,并可以使用聚集函数(sum,min,max,avg,count) 示例: SELECT `uid`,SUM(`points`) … Continue reading

wiloon, 11/21/2017 16:07

https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/07.1.md

wiloon, 11/19/2017 15:03

http://tiger2020.blog.51cto.com/723949/1535774 查看设备的uuid的三种方法,总结如下: 1 命令查看:blkid 2 文件查看:ls -l /dev/disk/by-uuid 3 命令查看:vol_id /dev/sda1 UUID的作用及意义 1:它是真正的唯一标志符 UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。如果你在系统中启动的时候,使用盘符挂载时,可能找不到设备而加载失败,而使用UUID挂载时,则不会有这样的问题。 2:设备名并非总是不变的 自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。 使用UUID对于挂载移动设备也非常有好处,它支持各种各样的卡,而使用UUID总可以使同一块卡挂载在同一个地方。 3:Ubuntu中的许多关键功能现在开始依赖于UUID

wiloon, 11/17/2017 16:37

https://yanyiwu.com/work/2014/11/08/golang-select-typical-usage.html golang 的 select 的功能和 select, poll, epoll 相似, 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作。 示例: ch1 := make (chan int, 1) ch2 := make (chan int, 1) … select { case <-ch1: fmt.Println(“ch1 pop one element”) case <-ch2: fmt.Println(“ch2 pop … Continue reading

wiloon, 11/16/2017 16:21

https://www.ezloo.com/2011/04/a_mx_cname_txt_aaaa_ns.html A记录 A记录是用来创建到IP地址的记录。 A记录设置技巧 1、如果想创建不带www的记录,即ezloo.com,在主机记录中填写@或者留空,不同的注册商可能不一样。 2、创建多个域名到同一个IP,比如给博客建了二级域名,可以使用*.blog.ezloo.com来指向一个IP,这样的话,不管是访问a.blog.ezloo.com还是b.blog.ezloo.com都能到同一个IP。 3、如果你给同一个二级域名设置了多个A记录,比如你建了两个blog的A记录,其中一个指向了111.111.111.111,另一个指向了111.111.111.112,那么在查询的时候,每次返回的数据包含了两个IP地址,但是在返回的过程中数据排列的顺序每次都不相同。由于大 部分的客户端只选择第一条记录所以通过这种方式可以实现一定程度的负载均衡。 在命令行下可以通过nslookup -qt=a www.ezloo.com来查看A记录。 MX记录 在命令行下可以通过 nslookup -qt=mx ezloo.com 来查看MX记录。 mx 记录的权重对 Mail 服务是很重要的,当发送邮件时,Mail 服务器先对域名进行解析,查找 mx 记录。先找权重数最小的服务器(比如说是 10),如果能连通,那么就将服务器发送过去;如果无法连通 mx 记录为 10 的服务器,那么才将邮件发送到权重为 20 的 mail 服务器上。 这里有一个重要的概念,权重 20 的服务器在配置上只是暂时缓存 mail ,当权重 20 的服务器能连通权重为 … Continue reading

wiloon, 11/16/2017 10:54

[code lang=shell] # go mod initialize a new module go mod init github.com/you/hello [/code] go build 通过go build加上要编译的Go源文件名,我们即可得到一个可执行文件,默认情况下这个文件的名字为源文件名字去掉.go后缀。 $ go build hellogo.go $ ls hellogo hellogo.go 当然我们也 可以通过-o选项来指定其他名字: $ go build -o myfirstgo hellogo.go $ ls myfirstgo hellogo.go 如果我们在go-examples目录下直接执行go build命令,后面不带文件名,我们将得到一个与目录名同名的可执行文件: … Continue reading

wiloon, 11/14/2017 14:38

auth:表示鉴别类接口模块类型用于检查用户和密码,并分配权限; account:表示账户类接口,主要负责账户合法性检查,确认帐号是否过期,是否有权限登录系统等; session:会话类接口。实现从用户登录成功到退出的会话控制; password:口令类接口。控制用户更改密码的全过程。也就是有些资料所说的升级用户验证标记。 system-auth文件是PAM模块的重要配置文件,它主要负责用户登录系统的身份认证工作,不仅如此,其他的应用程序或服务可以通过include接口来调用它(该文件是system-auth-ac的软链接)。此外password-auth配置文件也是与身份验证相关的重要配置文件,比如用户的远程登录验证(SSH登录)就通过它调用。而在Ubuntu、SuSE Linux等发行版中,PAM主要配置文件是common-auth、common-account、common-password、common-session这四个文件,所有的应用程序和服务的主要PAM配置都可以通过它们来调用。 http://www.infoq.com/cn/articles/linux-pam-one Linux中pam_cracklib.so的minlen和credit参数 11 June 2014 Linux中的PAM(Pluggable Authentication Modules)包含很多有用的模块,其中pam_cracklib.so模块可以配置密码长度复杂度的需求。一般需要同时配置/etc/pam.d/目录中的system-auth和password-auth文件,例如下面 password requisite pam_cracklib.so try_first_pass retry=3 type= ocredit=2 minlen=10 限定密码长度主要涉及minlen参数,以及ucredit lcredit dcredit ocredit这四个credit参数,分别表示大写字符、小写字符、数字、其它字符的额外credit值。 这里的minlen=10实际上表示最小分数为10,而不是简单的最小长度为10。密码每有一个任意字符会有一分,另外,ucredit/lcredit/dcredit/ocredit默认值均为1,表示密码中四种字符的类别数,每多一种,就会得到额外的一分。 在这里,ocredit=2 minlen=10,也就是说,如果密码全是其它字符的话,最少需要minlen – ocredit = 10-2 = 8位;若密码包含其它字符和小写字符,最少需要minlen – ocredit – lcredit = … Continue reading

wiloon, 11/14/2017 14:29

应用举例: http://qingwang.blog.51cto.com/505009/237661 1、将 newuser2 添加到组 staff 中 usermod -G staff newuser2 2、修改 newuser 的用户名为 newuser1 usermod -l newuser1 newuser 3、锁定账号 newuser1 usermod -L newuser1 4、解除对 newuser1 的锁定 usermod -U newuser1 功能说明:修改用户帐号。 语  法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s … Continue reading

wiloon, 11/13/2017 17:22

http://gulingzi.blog.51cto.com/2208376/1561403 /proc/partitions 记录了系统中所有硬盘及其上面的分区,包括已挂载和未挂载的。 有些硬盘没有记录分区信息,可能是没有分区,或者未记录 对于分区完成,但是尚未挂载的硬盘分区,partx告诉内核去做登记,以备挂载。 partx 告诉内核去识别、登记某个硬盘上的分区信息。并不是加载,只是识别并记录而已。 或者删除某个分区的记录。 -a 登记某块盘上的所有分区信息,如果某个分区信息已有记录,就会报错: BLKPG: Device or resource busy error adding partition 4 如果某磁盘上的分区信息都没有被记录,则安静完成。 -d 删除内核中关于某磁盘上的所有分区的记录(不是卸载) -d –nr m-n 删除从第m–n分区的记录 如果已经挂载,则无法删除,并报错: error deleting partition 5: BLKPG: Device or resource busy 如果都删除了,使用-a选项来重新登记,不会有报错。 一般分区完成后,系统会识别到。 -l 列出某磁盘上的分区情况。数据从磁盘上获取,并不是来源于/proc/partitions

wiloon, 11/13/2017 16:47

http://www.linuxfly.org/post/146/ 在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中。(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判断生成不同的最终文件等等。 一、cat和EOF cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的; EOF是“end of file”,表示文本结束符。 结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。 二、使用 看例子是最快的熟悉方法: cat << EOF > test.sh !/bin/bash you Shell script writes here. EOF 结果: 引用 cat test.sh #!/bin/bash #you Shell script writes here. 可以看到,test.sh的内容就是cat生成的内容。 三、其他写法 1、追加文件 cat << EOF >> test.sh … Continue reading

next page
辽ICP备14012896