linux umount 时出现device is busy 的处理方法--fuser,20253进程在使用,退出或杀死:
    * 查询: fuser -m /media/share  #/media/share 是挂载在本地的目录
    * fuser -m 找出其所有进程:fuser -m /dev/ttyACM0 | awk '{for(i=1;i<=NF;i++) if($i ~ /^[0-9]+$/) print "ps -p " $i}'|sh
    * 显示: /media/share: 25023c  #25023c   是进程编号,25023是进程PID。用ps aux|grep 25023进行查看是哪个进程导致出现device is busy

问:lsof -p 1498 | grep ttyACM0
没有输出任何内容,是它有可能打开过,可能并闭了是么,内核会记录下来,我只是查到当时打开过,是这个意思吗
答:是的,你的理解是正确的。即使进程已经打开了一个文件,但在某些情况下,它可能会在后来将其关闭。在这种情况下,`lsof`命令可能不会显示任何与该进程相关的文件描述符。内核确实会记录文件的打开和关闭事件,但是通常情况下,这些记录是暂时的,一般情况下不会保留太长时间。

如果你想要更详细地追踪设备的使用情况,你可能需要使用其他工具或技术,如系统日志(`/var/log/messages`或`/var/log/syslog`),来查看设备的活动历史记录。
—————————————————————某个文件是谁在读取,反查进程有用———————————————————————————————
umount /data/htdocs/xiyou.cntv.cn/application/views/themes/default/nettv/adp
/data/htdocs/xiyou.cntv.cn/application/views/themes/default/nettv/adp was not found in /proc/mounts 解决办法:
解决:
umount 时使用 -l 命令。
umount /img1/bbs/img1.bbs.cctv.com -f -l  #当-f强制不行,还得-l ,也就是lazy选项合用才行,再不行只有杀死对应的占用目录的进程。
sudo umount -l /data/htdocs/xiyou.cntv.cn/application/views/themes/default/nettv/adp
       -l     Lazy  unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as
              soon as it is not busy anymore.  (Requires kernel 2.4.11 or later.)
来自:https://blog.csdn.net/robertsong2004/article/details/41346629



[root@iZ25dcp92ckZ multepoolserver]# ps aux|grep hhvm
www      15801  0.0 14.0 826616 142904 ?       Sl   14:15   0:00 /usr/bin/hhvm --mode server --user www --config /etc/hhvm/server.ini --config /etc/hhvm/php.ini --config /etc/hhvm/config.hdf
www      15804  0.0  0.1 115212  1404 ?        S    14:15   0:00 bash -c ! fuser /data/runsock/hhvm.sock
www      15805  0.0  0.0 107904   828 ?        R    14:15   0:00 fuser /data/runsock/hhvm.sock
root     15807  0.0  0.0 110224   904 pts/0    S+   14:15   0:00 grep --color=auto hhvm
[root@iZ25dcp92ckZ multepoolserver]# fuser /data/runsock/hhvm.sock
/data/runsock/hhvm.sock: 15801
——————————————————————————————————————————————————————————————

我的日志文件太大了,一直在写,但关了还有程序在写,能反查到是谁在写么?
du -sh Remote-20131216.log  
4.3G    Remote-20131216.log
lsof abc.txt 显示开启文件abc.txt的进程:
lsof  Remote-20131216.log  .
安装lsof包(yum install lsof),安装完成可以使用lsof命令。
没有:
回忆未来-向东-Jàck  下午 03:41:05
我就是要这个啊哈哈。
没有囁。
大侠江  下午 03:42:36
COMMAND 有没有进程记录
如过没有就没有了
回忆未来-向东-Jàck  下午 03:44:20
我这边是加载的NFS,Linux都挂载到日志上了。
可能是这个原因吧?NFS网络挂载的。
linux中TOP命令显示出COMMAND进程名?
top 后有一个
http://www.ibm.com/developerworks/cn/aix/library/au-lsof.html
大侠江  下午 03:48:40
lsof 显示的的COMMAND
回忆未来-向东-Jàck  下午 03:49:51
好几列啊,就lsof  lsof |grep xxxx.avi 虽然有点慢,但是可以用。
lsof -f 不行的,先用grep试试吧。那就去掉-f,直接+文件试一试?
不行的。还是 grep 吧  lsof 加上-n貌似会快一点。
确实快了很多,瞬间返回。


这个lsof是啥原理,是扫整个系统的打开文件句柄了?
遍历 /proc/实现的。

fuser
fuser -v file
使用-v选项将显示更全的信息:
# fuser -v /root
            USER     PID    ACCESS   COMMAND
/root:      root    17923    ..c..      bash
            root    24869    ..c..      atop


root@119.10.*.23:~# fuser -v -n tcp 80
                     用户     进程号 权限   命令
80/tcp:              root       7717 F.... nginx
                     www        7718 F.... nginx
                     www        7719 F.... nginx

来自:http://www.cnblogs.com/bangerlee/articles/2460614.html
         http://www.cnblogs.com/yuboyue/archive/2011/07/18/2109838.html
方法:

lsof-4.82-4.el6.x86_64
[root@localhost htdocs]# rpm -qa|grep lsof
lsof-4.82-4.el6.x86_64

/usr/sbin/lsof|grep "Remote-20131216.log"
阅读全文
less中百分比和数字计算:
我用的格式如下,可能还有其他格式,欢迎补充

注意:括号中间的运算符两边必须有空格,否则结果不对,亲测坑爹啊

margin-left:calc(~"(100% - 225px)");

阅读全文
背景:多个项目进行代码的日志打印级别统一替换时,如果文件庞大,数目多,一个个去做显然力不从心,得通过脚本,这种替换sed最适合不过了。

paste imgid.txt times.txt |awk -F"." '{print $1}'|awk -F'T' '{print $1"        "$2}'|sed "s/[-:]//g"| paste imgid.txt times.txt |awk -F"." '{print $1}'|awk -F'T' '{print $1"        "$2}'|sed "s/[-]//g;s/://g"

[28-Jan-2019 20:22:33 Asia/Shanghai] PHP Warning:  Redis::connect(): connect() failed: Cannot assign requested address in /root/a.php on line 6
[28-Jan-2019 20:22:33 Asia/Shanghai] PHP Fatal error:  Uncaught RedisException: Redis server went away in /root/a.php:7
Stack trace:
CentOS6和7都要打开,模糊替换:

linux地址重用 net.ipv4.tcp_tw_reuse:
https://blog.csdn.net/pzqingchong/article/details/53580732

sed实现去注释,加中间小横:
#BuildRequires: %{_php_fpm}%{php_version}                                                                                                                    
#Requires: %{_php_fpm}%{php_version}



fpm}%{php  ==替换成=> fpm}-%{php:


如题:
I:
我想把:log_threshold =N;
替换为:log_threshold =1;

我想把:show_debug_errors=AnyWord;
替换为:show_debug_errors=false;

II:
error_reporting(E_ALL ^ E_NOTICE); 变:
//error_reporting(E_ALL ^ E_NOTICE);

I):日志开关,错误级别修改:
一、Sed替换方法如下(该处由scottjiang兄弟提供,后面我发挥了一下下:-)):


二、如果不想备份直接替换:


三、多个项目的index.php都要统一用sed替换:



II):sed实现对PHP代码某特征给注释一行(如:项目上线时不想让其打开错误报告给用户):
如想:
error_reporting(E_ALL ^ E_NOTICE); 变:
//error_reporting(E_ALL ^ E_NOTICE);
sed替换方法:

而:也可结合上面三实现批量替换实现多个文件包含上面串的该行给予注释掉:


四、替换由mysqldump出的自境长字段为0:
情形:Mysqldump出的线下自增长字段,会有默认值,而放到外网则需要从线上开始,此SQL也需要替换的(http://jackxiang.com/post/1188/)
deo` VALUES (1121,NULL,'
用sed替换:
sed -i "s/([0-9]*/(0/g" /tmp/result.sql  
替换后,为0,上线插入时则从线上默认增长,而不是上面的1121:
_video` VALUES (0,NULL,'2'

sed -i 's/([0-9]*,/(0,/g'   //文件名替换(12122, ==>(0,
缩进使用4个空格,而不是 tab。这是PHP编程规范手册中的一句话。

之所以这样,是因为tab在不同的编辑器代表的空格是不一样的,为了排版不出现混乱,规范中建议直接使用空格。
但是直接用空格的话,我们在写代码的时候经常会需要缩进,不用TAB的话工作量是巨大的。

其实,我们完全可以用EditPlus解决这个问题。

写代码的时候放心去用TAB,写完代码后,用鼠标选择全部代码,右击->format(格式)->tabs to spaces(制表符转为空格),这样就可以把所有的tab改为spaces了。

来自:http://hi.baidu.com/amenmen/item/e7c9588eca8f48d65f0ec120
———————————————————————————————————
1.视图->缩进指示。
2.视图->空白->空格。
背景:有时IE浏览器在访问页面时会缓存,而在多语言的网页设计时往往就会出现切换语言后还是以前的页面,是因为此时多语言页面根本没有去服务器请求,而(1)从本地cache里读取的缘故,同时cookie必须能及时设置成某种语言,不要因Js太多导致在切换语言时没执行到,进而切换了还是没有切换成功的问题。
(2)服务器在这时必须关闭对IE等各种浏览器的cache指示输出才行,否则也会出现因为cookie改变了,服务器还是用以前的html文档给输出,语言没有变。

(3)再就是对CSS等得同一套CSS,输出的各种语言的Html不同,加载上了同一css文件的不同片段进而实现了排版功能。

IE很聪明,如果缓存里面拥有该URL,那就从Cache里面读取数据。
  但是有时候我们不希望浏览器读取缓存。IE的聪明就反被聪明误了。
  JS实现:
  
代码


每次页面加载  清空缓存:


来自:http://www.douban.com/note/231598561/
http://bbs.csdn.net/topics/350158157
背景:有时用wireshark抓到的post数据时,需要把一列并成一行形成CUrl格式的数据进行模拟Post请求,用awk快速实现一列变一行。
一、一列变成一行的AWK实现方法:
请教!怎么把一个文本的一列,换成一行?
在vi中能做吗?
sed可以做到
是吗?请教sed怎么实现呢?谢谢!
也就是一个文件是这样的:
oplasttr
dsprjord
accontsup106
alprjinfo
holiday
把它替换成oplasttr dsprjord accontsup106 alprjinfo holiday
cat test.txt | awk '{printf "%s ",$0}'
AWK可以取出任何一列并形成行:
例子:  
[root@WANGJIAN ~]# cat file  
a 13  
b 1  
c 23  
d 234  
[root@WANGJIAN ~]# awk '{printf "%s", $1}' file  
abcd  

把a、b、c、d与相应的值放到file里,然后通过awk语句实现列变行的转换。

实践如下:
[root@test tmp]# vi test
You have new mail in /var/spool/mail/root
[root@test tmp]# cat test | awk '{printf "%s ",$0}'    
oplasttr dsprjord accontsup106 alprjinfo holiday

[root@test tmp]# cat test | awk '{printf "%s ",$1}'
oplasttr dsprjord accontsup106 alprjinfo holiday

而用wireshark导出的Post或Get参数时是以如下形式进行分布的:
Content-Disposition: form-data; name="playlist"
20362
------------GI3GI3gL6GI3ae0gL6Ef1ei4gL6gL6
Content-Disposition: form-data; name="user_name"
20120926173632167912
------------GI3GI3gL6GI3ae0gL6Ef1ei4gL6gL6
Content-Disposition: form-data; name="email"
21240168
------------GI3GI3gL6GI3ae0gL6Ef1ei4gL6gL6
用editplus处理下就形成下面的格式了:
1)Content-Disposition: form-data; name=" 全部替换掉。
2)"$ 用正则把后面的"给去掉。
3)------------GI3GI3gL6GI3ae0gL6Ef1ei4gL6gL6 替换掉。
4)用^[\t ]*\n  正则把空行去掉。
形成下面的结构,再用awk处理一下就形成了post的格式(数据多时这样做最省力,少了就自己拼吧):
playlist
20362
user_name
20120926173632167912
email
21240168
如下处理:

自己的实践下要多行,问了下scottjiang兄弟一行搞定:

来自:http://linux.sheup.com/linux/linux5480.htm

二、sed和awk实现打印奇数行和偶数行
假设文件为test.txt
1.奇数行:
    awk实现:awk '{if (NR%2==1) print $0}'  test.txt
    sed实现:sed -n 'p;n' test.txt
2.偶数行:
    awk实现:awk '{if (NR%2==0) print $0}'  test.txt
    sed实现:sed -n 'n;p' test.txt
来自:http://blog.chinaunix.net/uid-7845870-id-3203124.html


三、awk 多列变多行的转换:
tony@tony-LIFEBOOK-LH532:~$ cat test
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

怎么变成
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
——————————————————————
AWK:

实践如下:
[root@test tmp]# vi test
[root@test tmp]# cat test|awk '{for(i=1;i<=NF;i++)a[i]=a[i]?a[i]" "$i:$i}END{for(i=1;i<=NF;i++)print a[i]}'
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
来自:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4078467
背景:上一家是长城宽代,老是出现劫持右下角的广告,现在换成了联通ADSL,妈的变本加厉啊,直接弹出垃圾黄色页面。于是查一下路由DSN等,发现:路由器变成了121.165.95.229,备用变成了114.114.114.114。网上还有人反馈过。

阅读全文
背景:处理网站访问时后面才进行写日志,常看到类似的类里在单例中这样使,好多都是说类中,而没有谈到类中是单例的使用方法,如下:


简单实践:


运行情况:
---------- 调试PHP ----------
注册完shutdown函数
做数据链接,写入日志内容但不写在shutdown:clean_exit时写。
干完所有事情了,立即退出
clean_exit时写在web运行完后在这儿做写日志等的操作,单例模式注册日志先放前面数组,后面在这儿写。
输出完成 (耗时 0 秒) - 正常终止
阅读全文
Firebug下查看Html元素绑定了什么事件
一、用Firefox下的Firebug选择这个元素,然后样式选项卡最右边有个“DOM”,打开,可以看到这个元素绑定的一些事件。
二、在火狐上装了FireQuery插件,一直没去注意它 的用途。就只发现在FireBug的HTML Tab下的HTML代码层次上多了些事件代码,可以点击查看对应的绑定事件。最近的一些使用,发现了FireQuery的好处,特别是在测试动态生成 DOM以及数据测试上很是方便。(1)Firebug->控制台->勾选上Show internal Jquery data。
装好后就会自动引入jQuery.Lint.js对页面代码测试: Firebug->控制台->勾选上引入(2)Jquery Lint ,Show internal Jquery data。
在Console Tab的下拉菜单中启用引入,重新刷新页面后会动态地引入jQuery.Lint.js插件,此时对页面中出现的错误进行输出提示。
下载地址:http://james.padolsey.com/javascript/jquery-lint/

FireQuery的好处,特别是在测试动态生成 DOM以及数据测试上很是方便的文章来源:
http://www.cnblogs.com/yuzhongwusan/archive/2012/01/31/2332606.html
Codes DownLoad:
https://github.com/padolsey/jquery.lint--old/blob/master/jquery.lint.js


_____________________________________________________________
全文来自:
http://www.cnblogs.com/yuzhongwusan/archive/2012/01/31/2332606.html
firequery下载地址:https://addons.mozilla.org/zh-CN/firefox/addon/firequery/
Firequery Test Page:http://firequery.binaryage.com/test/
这个是同事写的,在这里备注一下:
对系统定下几个标准,而这也成了我们做的最正确决策之一。
  第一个,系统必须集成化。我们不允许有各种各样独立的零散系统,所以可以看到现在一个系统里面有供应商、采购、仓储、配送、客服、价格、类目管理和营销管理等各种大小模块。这样就保证所有系统用的数据都是一样的,供应链和配送等各种信息也都是透明的。
  第二,系统一定要实时。我们一定要实时地看到所有资源的使用情况,这个要求比较高一点。
  第三,这个系统一定要是柔性的。它要允许我们不断地去尝试新的商务模式,允许做错的时候可以改。
  第四,这个系统一定要是可扩的。现在看起来,这个标准越来越发重要,因为当我们流量、销售、商品越来越多越来越大的时候,我们不需要改基础架构,只需增加模块和服务器就行了。

阅读全文
/home/irdcops/shell/hiwifi/hiwificonn.sh  
chmod +x /home/irdcops/shell/hiwifi/hiwificonn.sh


yum remove NetworkManager
上在这样是不行的,有可能是网IP还在,只是访问有问题:
/home/irdcops/shell/nmcli/nmcli.sh

*/1 * * * *   /home/irdcops/shell/nmcli/nmcli.sh >> /data/logs/nmcli/nmcli.log

sh  /home/irdcops/shell/nmcli/nmcli.sh
123.125.114.144 Ping is successful.
114.114.114.114 Ping is successful.
111.161.64.48 Ping is successful.


Crontab:



简单的判断Wifi的那个:
/home/irdcops/shell/nmcli/nmcli.sh

Crontab:



实践发现,这块如果是xterm会显示,好像linux不显示这个标签,这块应该可以设置:http://jackxiang.com/post/3474/里,让标签显示文件路径,有描述:
让标签显示文件路径:
Options => Session Options => Terminal => Emulation
选择Terminal为Xterm/VShell,勾选“ANSI Color”,这样就会自动修改标签标题,还会包含当前目录。

==========================================================
实践OK如下:
vim /etc/sysconfig/bash-prompt-xterm
echo -ne "\e]2;仿真机\a"
再登录出现如下提示:
-bash: /etc/sysconfig/bash-prompt-xterm: Permission denied
加上权限:


一)CentOS6最终这样写,以eth0网卡为例:


阿里私有云取Eth0:
/sbin/ifconfig eth0|grep "inet"|awk -F' ' '{print $2}'

二)CentOS7,因ifconfig的返回ip格式有变得这样:
echo -ne "\e]2;K8S仿真机-老武在上面测试@$(/sbin/ifconfig eth0|grep "inet"|cut -f2 -d:|awk '{print $2}')\a"  

sh  /etc/sysconfig/bash-prompt-xterm
Docker仓库机@CentOS7@10.71.182.163


实践发现即使unset进入了,还是会出现SecureCRT的标签没有变化(PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm ,没有进入到默认的分支里去),于是自己 在/etc/bashrc 在判读的前面加了几行Shell,解决了问题,如下:AddTime:2018/05/03

进了这里面去了,但是标签没有变化:

-------------------------------------------------加上可执行权限---------------------------------------------------------
-bash: /etc/sysconfig/bash-prompt-xterm: 权限不够
root@101.200.228.135:~# chmod a+x /etc/sysconfig/bash-prompt-xterm
[/codes]

———————————————————————————————————————————————————————————————
有时会不小心在ctrl+B时误按成Ctrl+V后发现按错了,一瞬间又按了b(或ctrl+b),于是,把原来的会话标签页给去勾选了,标签没了,就当前了。
,查看并勾选会话标签页选项。
http://linuxroad.blog.51cto.com/765922/1022602
在linux系统中设置的方法(此法适用于所有远程登录的软件)

这时候只需要简单两步即可搞定
[root@centos581 sysconfig]# vim /etc/sysconfig/bash-prompt-xterm
echo -ne "\e]2;$(ifconfig eth0|grep "inet addr"|cut -f2 -d:|awk '{print $1}')\a"

[root@centos581 sysconfig]# chmod 755 /etc/sysconfig/bash-prompt-xterm

当然,你也可以定义让其显示你指定的字符串。
比如:
[root@centos581 sysconfig]# vim /etc/sysconfig/bash-prompt-xterm
echo -ne "\e]2;hello\a"



CentOS7修改好像无效,于是查了一下:
一个是可能修改了hostname:http://jackxiang.com/post/5640/
二是linux下的shell——如何修改shell的提示符,能够出现登录用户名、主机名和路径
  有的机器上可能登上去后显示总是-bash-3.00$,解决方法是对比其他机器的~/.bash_profile文件,发现补充上以下东西就可以显示"xx@机器名 当前dir“了。

2 if [ -f ~/.bashrc ]; then
  3     . ~/.bashrc
  4 fi
  5 PATH=$PATH:$HOME/bin
  6 export PATH
  7 unset USERNAME



深入的看下,发现是在/etc/bashrc文件里面有/etc/sysconfig/bash-prompt-xterm这样的设置,/etc/bashrc:

17 # are we an interactive shell?
18 if [ "$PS1" ]; then
19     case $TERM in
20     xterm*)
21         if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
22             PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
23         else
24             PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"'
25         fi
26         ;;

发现是这个变量在阿里云里有值,而没有加载导致的,如下,非阿里去是没有这个PROMPT_COMMAND参数的: -AddTime:2015-10-12
PROMPT_COMMAND=""; //加一行清空这个变量也就对了,PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm能运行进去了,呵呵:
if [ -z "$PROMPT_COMMAND" ]; then 这一行阿里云给加上了,其它常规linux没有的,像centOS啥的:
-z STRING
              the length of STRING is zero
PROMPT_COMMAND估计是干这事的:Linux利用PROMPT_COMMAND实现操作记录的功能,http://www.bdqn.cn/news/201312/12316.shtml
Linux 利用 PROMPT_COMMAND 实现审计功能  :http://blog.163.com/ly_89/blog/static/1869022992011756434459/
看了下:/var/log/sa:
sa01  sa03  sa05  sa07  sa09  ... sa30 (一个月的日志)
————————————————————————
if [ "$PS1" ]; then
  if [ -z "$PROMPT_COMMAND" ]; then  #[ -z STRING ] “STRING” 的长度为零则为真。  https://blog.csdn.net/longyinyushi/article/details/50728049
    case $TERM in
    xterm*|vte*)
      if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
          PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
      elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then
          PROMPT_COMMAND="__vte_prompt_command"
      else
          PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
      fi
      ;;
来自:http://www.cnblogs.com/mangu-uu/archive/2012/10/08/2715503.html

cat /etc/sysconfig/bash-prompt-xterm
echo -ne "\e]3;阿里云bobWB's VPS@$(/sbin/ifconfig eth1|grep "inet"|awk  -F" " '{print $2}')\a"
下次登录后就secureCRT标签里就会出现:
阿里云bobWB's VPS@101.200.1.***
————————————————————————————————————————————————————————————————
方法:
步骤一:
使用xterm让标签显示文件路径:
Options => Session Options => Terminal => Emulation
选择Terminal为Xterm/VShell,勾选“ANSI Color”,这样就会自动修改标签标题,还会包含当前目录,
这样就会自动修改标签标题,还会包含当前目录,类似这样:
user@host:/home/user/

步骤二:把IP地址由localhost修改为真实IP,多机器时好维护
将服务器名称设为你清楚的名字或者是ip地址,
这样连上服务器了,标签只是显示名称了,而不是登入后的帐号名和登入服务器的主机名:
________________________________________________________________
永久性修改服务器名称:
编辑/etc/sysconfig/network
修改HOSTNAME=新名称
保存后退出
同时修改/etc/hosts
添加一行 127.0.0.1    新名称
保存后退出
好了,如果是服务器建议还是重启一次,更新主机名,如果是普通用户电脑,那么就继续玩吧,这次就暂时用hostname修改,下次重启就正常了。

步骤三:对投影仪、Linux下的目录因颜色导致看不清的解决办法:
在使用投影仪的时候,可以勾选“Use color scheme”,即可以实现白底黑字效果,这样比黑底白字看的清楚些。
设置成xterm后,会发现在黑色背景下,目录的颜色太深,看不太清楚:
目录看不清的解决方案:Global Options => Terminal => Appearance => ANSI Color:将Normal color的颜色改成自己喜欢的颜色即可。(勾选“ANSI Color”, 才能显示鲜艳的颜色)
改变显示的最大列(默认80列,不满屏):
1) Global Options => Terminal => Appearance, 调整最大列为300;(实践Ok:选项->全局选项->外观->最大列:300)
2) Options => Session Options => Terminal => Emulation,调整逻辑列为132(或其他)(实践Ok:选项->会话选项->终端->仿真->逻辑列:132)

参考:
http://blog.opvps.com/securecrt-%E6%98%BE%E7%A4%BA%E6%A0%87%E7%AD%BE%E8%AE%BE%E5%AE%9A/
http://z515123.blog.51cto.com/679304/647679
背景:线上用unix socket线下测试用tcp 9000,配置一样上线会出问题的。再就是这两种的区别。
两种不同配置会在Nginx上反映出来的:
125 connect() to unix:/usr/local/php/var/run/php-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.136.1, server: mytv.xiyou.cntv.cn, request:

    在你fpm启动脚本php-fpm.conf里配置,在php-fpm.cnf里设置,AF_UNIX稳定性比TCP要高多了,unix socket或者TCP,unix socket的好处是性能更好,一个是AF_UNIX,本地管道,只能本机用一个AF_INET,通过网卡通讯,听说unix不如inet稳定?一个是AF_UNIX,本地管道,只能本机用一个AF_INET,通过网卡通讯。nginx如果打算和fpm在同一台机器,那就用unix sock
如果想分开部署,可以用TCP
基本还是tcp吧
这年头,哪还有一台机器什么都干的事
unix socket是一个环形内存buffer,内核保证顺序
淘宝这里前端接入层是LVS,RS就是nginx + php-fpm,它们之间使用unix sock通信,每台机器都配置一个nginx+php。
回忆未来-向东-Jàck()  下午 03:08:27
不同在:
listen = 127.0.0.1:9000
listen = /usr/local/php/var/run/php-fpm.sock
Nginx在配置上也就不同了:
fastcgi_pass  127.0.0.1:9000;  
fastcgi_index index.php;
include fcgi.conf;

fastcgi_pass  unix:/usr/local/php/var/run/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;

阅读全文
背景:外包水平太差了,上传图片裁剪,先放服务器,再读取裁剪,我记得可以在用户本地裁剪的,这块都写成那样了,就那样吧,这块设计到图片显示,因支持多个域名和部署问题这块还得直接显示,PHP直接显示图片,用浏览器访问是不可能的,要用SRC:<img src="http://jackxiang.com/logo/getpic?filename=201310262031159804.png&amp;rand=1382790675000">。
PHP读取图像文件并在浏览器上显示
去年做过一个项目,要把用户上传的图像文件用PHP读取图像文件并列出文字清单,当用户点击一个文件名后,就可以显示这个图像.

因为要考虑兼容各种不同的图像格式, 我使用了GD库, 判断出具体是那种图像文件(MINE),再调用相应的image生成函数imagecreatefromXXX(),生成一个img,再将这个img以jpeg格式输出至浏览器,虽然做出来了,但总觉得不满意.

今天有机会重新考虑这个功能,在php手册中发现几行代码,简洁明快,完全能实现我要的功能,还不需要GD库

代码如下:

$size = getimagesize($filename); //获取mime信息
$fp=fopen($filename, "rb"); //二进制方式打开文件
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp); // 输出至浏览器
exit;
} else {
// error
}
?>

代码量是我原来的1/10都不到,速度快了N倍.
外包说三年经验,这个没调出来,我看未必啊,
给他下面的参考代码都给弄错了,我调通了下,他继续:

来处:http://www.shangxueba.com/jingyan/122754.html
Dig 在CentOS6.4/7下面的安装方法及查找某命令在哪个包的方法:http://jackxiang.com/post/7038/
一)rpm -qf /bin/dig
bind-utils-9.11.4-9.P2.el7.x86_64
安装DNS服务器的时候,想测试一下DNS服务器,发现没有host dig nslookup命令,原来是没有安装bind-untils,立即yum install bind-untils搞定如下:
sudo yum install bind-utils -y
它们各自的位置在:
[root@localhost site]# ls /usr/bin/nslookup
/usr/bin/nslookup
You have new mail in /var/spool/mail/root
[root@localhost site]# ls /usr/bin/dig
/usr/bin/dig
[root@localhost site]# ls /usr/bin/host
/usr/bin/host
实践如下:
Total download size: 1.0 M
Installed size: 2.6 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm                                                                                    | 878 kB     00:00    
(2/2): bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm                                                                                   | 182 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                        9.0 MB/s | 1.0 MB     00:00    
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 32:bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64   1/2
  Installing : 32:bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64   2/2
  Verifying  : 32:bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64   1/2
  Verifying  : 32:bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64   2/2
Installed:
  bind-utils.x86_64 32:9.8.2-0.17.rc1.el6_4.6                                                                                                                
Dependency Installed:
  bind-libs.x86_64 32:9.8.2-0.17.rc1.el6_4.6                                                                                                                
Complete!

二)我的LINUX服务器没有strace命令,CENTOS 6.4,怎么安装它呢
打开终端,输入命令:rpm -qa |grep strace,如果显示为空。
3. 如果没有这个显示结果,可以采取如下方式:
3.1 在系统光盘中查找对应的软件包,一般在Server目录下;
3.2 可以去Linux系统对应的官方网站进行下载对应的软件包;
4. 安装方式:
4.1 如果在图形界面,通常双击安装即可;
4.2 如果是在命令行界面,进入对应的路径,输入命令“rpm -ivh strace等文件全称.rpm”安装即可;
4.3 安装完成后使用命令“rpm -qa |grep strace”查询即可知道是否安装正确。

注:如果已经安装了yum源即可直接输入命令:root#yum -install strace-4.5.18-5.el5
使用:
复杂的用法还是直接man strace看说明吧,这里说个最简单的用法就是 strace -p <PID>针对进程跟踪。

Egg:
Total download size: 172 k
Installed size: 533 k
Is this ok [y/N]: y
Downloading Packages:
strace-4.5.19-1.17.el6.x86_64.rpm | 172 kB     00:00    
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : strace-4.5.19-1.17.el6.x86_64   1/1
  Verifying  : strace-4.5.19-1.17.el6.x86_64   1/1

Installed:
  strace.x86_64 0:4.5.19-1.17.el6
http://www.36kr.com/p/207155.html
分页: 82/338 第一页 上页 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 下页 最后页 [ 显示模式: 摘要 | 列表 ]