STRICT_TRANS_TABLES:https://www.cnblogs.com/lxwphp/p/9054971.html
#sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql_mode=ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION



背景:线上数据库报:mysql STRICT_TRANS_TABLES严格模式下提示Field 'ip' doesn't have a default value,线下测试机没有报错,外包开发时代码没法保证SQL全写运行无问题。
failed to execute the SQL statement:
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect
datetime value: '0000-00-00 00:00:00' for column 'updated_at' at row 1
如果想宽松模式,则注意一下修改一下sql_mode,如下:


这样干的问题:


INNODB加入后,还是不行:
innodb_strict_mode = 1
mysql> show variables  like "%str%";
+--------------------+----------------+
| Variable_name      | Value   |
+--------------------+----------------+
| innodb_strict_mode | ON    |
+--------------------+----------------+
1 row in set (0.00 sec)

外网的SQL有问题,内网的测试机db无问题,如下:
REPLACE INTO `app_play_8` (`user_id`, `video_id`, `video_name`, `video_img`, `video_url`, `playtime`, `source`, `source_url`, `clienttype`, `position`) VALUES ('21240168', '112c9654-52ed-11e1-b091-a4badb4696b6', '《2012春节动画狂欢曲》', 'http://p1.img.cctvpic.com/fmspic/2012/02/06/becd73c6cc3f43c59add0f42787400ae-180.jpg', 'http://jackxiang.com/v-112c9654-52ed-11e1-b091-a4badb4696b6.html', 1388978166, '哈妮哈妮', 'http://my.jackxiang.com/31759585/index.html', '1', '99')

ERROR 1364 (HY000): Field 'ip' doesn't have a default value


看似找到了,其实不然,和版本无关---另一台测试的db是13的,也是同样ip不能为空,但也不提示:Field 'ip' doesn't have a default value。
找到了:
这个我在我的虚拟机mysql5.6.12 上分别把线上的sql给建立和线下也建立,同时这个+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| innodb_strict_mode | OFF   |
+--------------------+-------+,
虚拟机是会报没有ip的,所以,得出是mysql的版本造成的。5.6.11(测试),5.6.12(我的虚拟机),5.6.13线上。 12,13是一样的结果,得证。
我这个关系不大:innodb_strict_mode
尽管线上打开了,但是我的虚拟机配置没打开这个,依旧能提示:Field 'ip' doesn't have a default value。

______后来,1)打开my.ini,加入:
#Add Mysql's Innodb strict sql insert mode by:jackxiang date:2013-01-06

2)重启:
[root@localhost mysql]# ./bin/mysqld_safe --defaults-file=conf/my.cnf &
3)再插入OK有提示了:
mysql> REPLACE INTO `app_play_8` (`user_id`, `video_id`, `video_name`, `video_img`, `video_url`, `playtime`, `source`, `source_url`, `clienttype`, `position`) VALUES ('21240168', '112c9654-52ed-11e1-b091-a4badb4696b6', '《2012春节动画狂欢曲》', 'http://p1.img.cctvpic.com/fmspic/2012/02/06/becd73c6cc3f43c59add0f42787400ae-180.jpg', 'http://jackxiang.com/v-112c9654-52ed-11e1-b091-a4badb4696b6.html', 1388978166, '哈妮哈妮', 'http://my.jackxiang.com/31759585/index.html', '1', '99');
ERROR 1364 (HY000): Field 'ip' doesn't have a default value
mysql> quit


实践参考两篇文章:
mysql STRICT_TRANS_TABLES严格模式下提示Field 'id' doesn't have a default value:
http://www.zui88.com/blog/view-411.html
Mysql Field * doesn't have a default value解决方法:
http://blog.sina.com.cn/s/blog_43ed7f260100fk6h.html

EOF Add:2014-01-06
——————————————————————————————————————————————————————————————
虽然说我们尽量在写程序的时候控制插入到数据库的数据,而不要用数据库去判断数据的对错,但是有时候为了方便还是需要数据库自身的容错能力来帮助我们达到目的的。举例说明:
创建如下数据表
[sql] view plaincopy
    CREATE TABLE `book` (  
      `id` int(11) default NULL,  
      `num` int(11) unsigned default NULL  
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk  
    insert into bookvalues(1,0),(2,0)  
执行update book set num='abc',竟然不报错,原因是没有启用严格模式。所以
先执行set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",
然后执行update book set num='abc',数据库就报错了
如果想一劳永逸,那就直接把数据库配置文件my.ini中的相关参数设置为
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
——————————————————————————————————————————————————————————————

解决办法:关闭MySQL的strict mode。具体做法:找到MySQL目录下的my.ini,
将其中的sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
修改为sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",重新启动 Mysql服务。


  MySQL 严格模式 sql_mode 收藏
虽然说我们尽量在写程序的时候控制插入到数据库的数据,而不要用数据库去判断数据的对错,但是有时候为了方便还是需要数据库自身的容错能力来帮助我们达到目的的。举例说明:
创建如下数据表
CREATE TABLE `book` (
  `id` int(11) default NULL,
  `num` int(11) unsigned default NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk
insert into bookvalues(1,0),(2,0)
执行update book set num='abc',竟然不报错,原因是没有启用严格模式。所以
先执行set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",
然后执行update book set num='abc',数据库就报错了


非严格模式:会对语法的限制降到最低,导致很多不规范的语句都可以执行,会导致歧义.
严格模式:可以实现严格校检,使错误数据不能插入,从而保证数据准确性.

来自:http://blog.sina.com.cn/s/blog_505d197c0100l1bs.html
来自:http://blog.csdn.net/ldb2741/article/details/5317803
官网:http://forums.mysql.com/read.php?11,581356,581356#msg-581356
陸 一鳴<lu.yiming@outlook.com>  下午 04:11:38
https://gist.github.com/luxixing/7411156
PHP5.3向更高版本迁移的内容基本写完了
感兴趣的看看,有不足之处请在下面的评论反馈,
我会尽量完善
有些内容如果需要优化示例或者新增示例的话也反馈下

https://gist.github.com/luxixing/7411156
实践有问题解决如下:
时不时访问不到切换下。这个是别人写的,有个缺点:
里面的中文编码不对,直接打开host文件是中文乱码。
不过,C:\Windows\System32\drivers\etc\hosts
编码修改成utf8就OK了。
——————————————————————————

问:
那我在内网host,外网host,这块切换环境有没有好的Firefox插件?
答:
switchhost
chrome有插件

https://github.com/oldj/SwitchHosts/downloads
Windows 绿色版本下载:https://github.com/oldj/SwitchHosts/downloads。

来自:http://oldj.net/article/switchhosts/
百度下载:http://pan.baidu.com/share/link?shareid=150951&uk=3607385901#dir/path=%2Fshare%2FSwitchHosts!
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
分页: 82/338 第一页 上页 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 下页 最后页 [ 显示模式: 摘要 | 列表 ]