背景:十进制日志是用来恢复数据用的,但是呢,往往我们是想通过看二进制日志进行看慢sql。

284M    /data/mysql/mysql-bin.000023
674M    /data/mysql/mysql-bin.000024
831M    /data/mysql/mysql-bin.000022
mysql-bin.0000* 这些是mysql运行过程中的操作日志。
保留的话:当你数据丢失可用来恢复数据,当你需要主从复制时需要靠这些文件。
不保留的话:节省空间,加快mysql速度。
关闭办法:
找到my.cnf或者my.ini文件,把 “ log-bin= ” 这个参数用#号注释掉,然后重启mysql就可以。
折中办法:
在my.cnf或者my.ini文件中,log-bin参数后面,加入expire_logs_days=15。意思就是日志保留15天。然后重启mysql就可以。
把现有的log-bin清了:      purge master logs before now()


#log_bin = mysql-bin
#binlog_format = mixed
#expire_logs_days = 1

http://outofmemory.cn/code-snippet/4291/clear-mysql-bin-with-mysql-command-reset-master
0) mysql bin-log 主从配置:
http://blog.csdn.net/zbfaaadjl/article/details/18557975

一)浅析MySql二进制日志的应用:
http://www.blogjava.net/dongbule/archive/2010/09/04/331050.html
log-bin=/data/db/binLogs
binlog_format=mixed
#log-bin                =   mysql-bin           #打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径,如:/home/www/mysql_bin_log/mysql-bin
expire_logs_days       =   2                   # 自动清理 2 天前的log文件,可根据需要修改

启动后是这样的:
[root@localhost db]# ls /data/db/
binLogs  binLogs.000001  binLogs.000002  binLogs.index  mysql
所以,得修改成如下所示:

于是关闭重启也就对了(关闭mysql的方法:http://jackxiang.com/post/3531/),如下:
ls /data/db/binLogs/
mysql-bin.000001  mysql-bin.index
二)对mysql日志进行操作的总结包括 启用,过期自动删除 等:
http://www.cnblogs.com/cocos/archive/2010/12/22/1913557.html

三)清除mysql的log-bin日志,mysql5.6 log-bin操作:
http://blog.163.com/zjc_8886/blog/static/2408175201411394628257/
查看mysql是否开启log-bin日志:show variables like  '%log%'
默认开启log-bin日志,默认安装路径为C:\ProgramData\MySQL\MySQL Server 5.6。
修改该目录下my.ini文件,把log-bin前面的#去掉,
后面是存储log-bin的日志位置。
log-bin=C:/ProgramData/MySQL/MySQL Server 5.6/mylog-bin.log
查看mysql bin-log日志命令:show binary logs
产生新的bin-log日志文件命令:flush logs
删除bin-log日志文件命令:purge binary logs to 'mysql-bin.000018'; mysql-bin.000018为文件名称。
全部删除bin-log日志命令:reset master
查看日志事件命令为:show binlog events;
或查看某个日志详细信息:show binlog events in 'mysql_bin.000001'\G
通过bin-log恢复数据:mysqlbinlog mysql_bin.000001 | mysql -uroot -proot
mysqlbinlog后可以跟(--start-date="" --stop-date="" ,或--start-positon="100" --stop-postion="200")
也可以直接导出sql文件:   mysqlbinlog  mysql_bin.000001 >d:\my.sql  通过source d:\my.sql 导入数据库。
可以查看表是否为分区表 :SHOW TABLE STATUS
查看表中最新bin-log信息 :SHOW master STATUS
.frm 代表表中的结构,.MYD代表表中的数据,.MYI代表表中的索引。

四)脚本清除n天以前的日志文件以及mysql-bin文件:
http://blog.chinaunix.net/uid-11121450-id-335163.html

PURGE {MASTER | BINARY} LOGS TO 'log_name'   --用于删除指定的日志
PURGE {MASTER | BINARY} LOGS BEFORE 'date'  --用于删除日期之前的日志,BEFORE变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式
如:(MASTER 和BINARY 在这里都是等效的)
PURGE MASTER LOGS TO 'test-bin.000001';  //后面脚本会用到。
PURGE MASTER LOGS BEFORE '2011-01-0100:00:00';
——————————————————————————————————————————
MySQL运行时间长了之后,二进制日志会占用大量硬盘空间,清楚这些日志的命令如下:

我把这个日志给停了:
mysql> show binary logs;
ERROR 1381 (HY000): You are not using binary logging

来自:http://rashost.com/blog/remove-mysql-bin-log


——————————————————————————————————————————

前些日子,系统上线了,发现tomcat 下的日志增长得挺快的,写了个脚本清除n天以前的日志
web_def_tomcat_log_path=/Application/tomcat/log
$web_def_tomcat_log_expire_days=7
if [ "$web_def_tomcat_log_expire_days" -gt 0 ]
then
echo "find $web_def_tomcat_log_path -follow -mtime +$web_def_tomcat_log_expire_days -name '*.log' -exec rm -f {} \;"
find $web_def_tomcat_log_path -follow -mtime +$web_def_tomcat_log_expire_days -name '*.log' -exec rm -f {} \;
fi
由于web的mysql下面挂的同步太多了,每天产生1-2G的mysql-bin文件,因此也写了个清除mysql-bin的文件,这个文件会至少保留最新的一个mysql-bin.0*文件
web_def_host="1.2.3.4" #mysql的ip
web_def_port=3306 #mysql的端口
web_def_username="tester" #mysql的用户
web_def_password="123" #mysql的密码
web_def_mysql_expire_logs_days=7 #删除7天以前的mysql-bin,但是最后至少保留一个文件
mysql_exe="mysql -h $web_def_host -P $web_def_port -u $web_def_username --password=$web_def_password -e "
if [ "$web_def_mysql_expire_logs_days" -gt 0 ]
then
#获取n天以前被修改的mysql-bin文件,
logFileName=`find $web_def_mysql_data_path -follow -atime -$web_def_mysql_expire_logs_days -name 'mysql-bin.0*' |sort|head -1`
if [ "$logFileName" != "" ]
then
logFileName=`basename $logFileName`
echo $mysql_exe "\"PURGE MASTER LOGS TO '$logFileName'\""
$mysql_exe "PURGE MASTER LOGS TO '$logFileName'";
fi
fi
上面这两个脚本,需要在crontab 里每天执行一次,定时删除n天以前的日志文件

end


shell入门的拦路虎:syntax error: unexpected end of file,把上面的代码转一下就Ok了,原因是\r\n\r\n的问题:
http://www.2cto.com/os/201302/191298.html

实践Ok如下:

原理就是查找到文件后,去mysql终端里给用命令删除掉:
find /data/db/binLogs/ -follow -atime -1 -name 'mysql-bin.0*'|sort|head -1
/data/db/binLogs/mysql-bin.000001

[root@localhost scripts]# dos2unix ./clearMySqlsBinLogFile.sh  
dos2unix: converting file ./clearMySqlsBinLogFile.sh to UNIX format ...

删除bin-log日志:http://laowafang.blog.51cto.com/251518/790929
近来发现chrome浏览器每次启动的时候总会打开最后一次关闭的网页,后来发现在选项->基本设置->启用 :
1)打开主页
2)重新打开最后一次打开的网页
3)打开以下网页:

这个不知道什么时修改给搞成第三项了,选择第一项就行了。
近来PHP的一个扩展爆出一个libpng的漏洞,我记录了一下: http://jackxiang.com/post/4975/ ,于是就去那个网站下载最新版本的libpng:
http://libpng.sourceforge.net/ 没有想到下载了一个7z结尾的文件,lpng159.7z
于是否就问了一下Google大神。Linux下的7Zip的解决方案是 p7zip ,于是对应的两用下载方法。
1.万能的Yum
[root@ hostname ~] #
[centos6.2好像不行,不知道还是yum源头的问题]

2.源代码下载编译
下载地址:http://p7zip.sourceforge.net/
Wget以下Url:
http://downloads.sourceforge.net/project/p7zip/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fp7zip%2F&ts=1330178243&use_mirror=nchc

当然,这里不会出现乌龙的7zip的源码包。这里出现的是tar.bz2 包。
1.解压
2.安装

在进行make install 命令的时候提示No such file or directory,则使用 sudo make install 命令。

3.使用,解压7Zip包
1 [root@ hostname ~] # 7za x lpng159.7z

.......
Everything is Ok

Folders: 21
Files: 200
Size:       3011760
Compressed: 497174
后面就是重新编译一次以替换掉这个旧的版本即可。
每个人初入职场都会遇到打击、赞扬,如何应对这些问题,就要保持良好的心态,年终晋升,有成功的,有失败的,也有气馁的,更有气馁后愤愤不平的,甚至叫骂的。希望看完下面的东西可以帮助辛苦一年工作上未得到肯定的朋友:)

大家都知道,蘑菇是生长在阴暗的角落,它们得不到阳光,也没有肥料,自生自灭,只有长到足够高的时候才开始被人们关注,可此时它自己已经能够接受阳光了—“蘑菇定律”据此而来。
有这样一个故事。湖畔有两棵树,一棵粗如熊腰,一棵细若手臂。给湖底清淤泥时,它们被锯掉了。人马离去,岸上就多了两根树桩。
一天,来了一个花木工人,要挖掉它们重新植树。这时一个散步的老人走过来说,大的不敢保证,小的一定会活。花木工人看了看树桩,没有动,收起工具走了。
一年过去了,小树桩上的嫩芽长成手指粗的枝条,大树桩上的嫩芽长成了一丛灌木。花木工人很希望大树桩上的嫩芽也长出粗壮的枝条来,他砍去多余的枝条,留下最有希望的一枝,可是,一点都没有用。三年后,这根抽过多次芽的大树桩在最后一根枝条枯萎后,悄无声息地死了。
有一天,散步的老人又来这儿,园林工人遇见了他,很想解开心中的迷惑。老人说,树和人一样,凡是早年受挫的人都幸运的,他们还有从头做起的时间,可以鼓起勇气来不忧不惧地学一门东西,最后成为有用之才。到了四五十岁才灾祸临头,就真正可怜了,他已没有从头做起的时间和精力。阅读全文
阿里巴巴集团和阿里巴巴网络有限公司今天联合宣布,阿里巴巴集团向阿里巴巴网络有限公司董事会提出私有化要约。阿里巴巴集团及其一致行动人目前持有此上市公司73.5%的股份。以下是马云写给阿里巴巴全体员工的信:阅读全文
1、下载驱动程序。
地址:http://www.broadcom.com/support/802.11/linux_sta.php

根据你的机器选择32位或者64位驱动。我这里是hybrid-portsrc_x86_32-v5_100_82_112.tar.gz

2.解压下载的驱动文件,“tar -zxvf xxxx.tar.gz”。
3.进入解压目录,输入“make”,“make install”编译。
4.看到生成“wl.ko”文件和显示所在的路径,进入该路径。
5.加载“wl.ko”模块,输入“insmod wl.ko”,如果出错,可以先输入“modprobe cfg80211”或者“modprobe lib80211”或者“ieee80211_crypt_tkip (depending on your os)”。
6.重启“reboot”后继续配置。
7.进入到第4步的路径,输入“depmod -a”,“echo modeprobe wl >> /etc/rc.local”
8.To enable monitor mode:输入“echo 1 > /proc/brcm_monitor0”
9.reboot测试。
来自:http://hi.baidu.com/xujin421281/blog/item/67162a09b226eb97d53f7c1c.html

阅读全文
      今天下载了一个SecureCRT5.1.3中文版,安装完以后,将我原来用的英文版的config文件夹复制到中文版默认文件夹下,可是登陆路由器的时候提示“数据库未找到防火墙"none”这个会话将尝试连接”确定以后就可以连接上。

       主要是因为中文版中,在.ini文件(包括默认文件和登陆文件)认为S:"Firewall Name"=无,是没有防火墙。而英文版中是S:"Firewall Name"=None,这样中文版就会认为有一个名字为None的防火墙,因此会提示说没有找到名字为"None"的防火墙。把这个None改成“无”就好了。
       反之,把“无”改为“None”即可。注意,区分大小写。
      操作步骤:
      选项->全局选项->常规->配置文件夹->找到这们folder的位置后,再直接:查找所有的ini文件,找到出现未找到防火墙None的这个ip的ini,打开这个ini后,将"Firewall Name"=无 修改为"Firewall Name"=None,及可。当然你要是嫌弃麻烦,也可以批量脚本替换。注意:None中的N是大写。
今天在网上找到一个小程序,一编译出现一大堆的
错误: 程序中有游离的 ......
开始觉得可能我从网页上直接复制的代码中有别的字符。于是把中文的全角空格全部替换了。
这次好多了,少了一些,不过还有很多,调试信息说是XX行有游离的。。。哪怕我把他全部删除,手动输入也不行。。。

baidu了一下找到一个高手的一个解决方法:

od -c das-server.c > log.txt

终于找到了,其实不是那一行,而是别的行有 302 240 等。
删除了,终于好了,小记一下。

http://blog.csdn.net/wuff1988/article/details/7067373






1. 程序(*.c,*.h)中使用了中文的标点符号(全角),比如;,},+。
改成英文的标点半角符号就行了。
甚至有时候空格也会出现类似错误,删掉该空格 重新输入。
vim里面做类似替换还是很容易的。
如何看到报错的符号?
od -c hello.c > log.txt
在log中就能看到符号了

2. 如果替换成了英文标点还出错的话,还报此错误,那么就是文件存贮格式的问题了。
一般在windows下的文件都存成ansi格式,为了在linux下能通用,建议保存成UTF-8不带BOM
编码格式,因为目前gcc和g++不支持UTF-8带BOM编码格式。

用g++编译的时候碰到UTF-8 BOM错误怎么办?
$ g++ -I../../include unit_test.cpp -o unit_test
unit_test.cpp:1: 错误: 程序中有游离的’\357′
unit_test.cpp:1: 错误: 程序中有游离的’\273′
unit_test.cpp:1: 错误: 程序中有游离的’\277′
In file included from unit_test.cpp:63:


或在英文系统下:
$ g++ -I../../include unit_test.cpp -o unit_test
unit_test.cpp:1: error: stray ‘\357′ in program
unit_test.cpp:1: error: stray ‘\273′ in program
unit_test.cpp:1: error: stray ‘\277′ in program
In file included from unit_test.cpp:63:


如何判断文件是否是使用UTF-8 BOM存储的?

执行下面的命令:
$ cat cpp/src/unit_test/unit_test.cpp |hd -n 10
00000000 ef bb bf 2f 2a 2a 2a 2a 2a 2a |…/******|
0000000a



linux下c编程有时会遇到 :

wanglitaotest.c:4: 错误:程序中有游离的 ‘\357’
wanglitaotest.c:4: 错误:程序中有游离的 ‘\274’
wanglitaotest.c:4: 错误:程序中有游离的 ‘\214’
wanglitaotest.c:4: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘char’
wanglitaotest.c:9: 错误:程序中有游离的 ‘\357’
wanglitaotest.c:9: 错误:程序中有游离的 ‘\274’
wanglitaotest.c:9: 错误:程序中有游离的 ‘\214’
wanglitaotest.c:17: 错误:程序中有游离的 ‘\357’
wanglitaotest.c:17: 错误:程序中有游离的 ‘\274’
wanglitaotest.c:17: 错误:程序中有游离的 ‘\214’
wanglitaotest.c:17: 错误:程序中有游离的 ‘\357’
wanglitaotest.c:17: 错误:程序中有游离的 ‘\274’
wanglitaotest.c:17: 错误:程序中有游离的 ‘\214’

解决办法
1.程序中输入的字符: , ; " ' / 等符号,有可能是使用的中文输入发输入的
2.程序中有使用全角拼音的现象
把程序完全用 英语输入,半角输入运行正常


错误提示 : a.c:6: 错误:程序中有游离的 ‘\200’
a.c:6: 错误:程序中有游离的 ‘\200’
a.c:8: 错误:程序中有游离的 ‘\343’
a.c:8: 错误:程序中有游离的 ‘\200’
a.c:8: 错误:程序中有游离的 ‘\200’

原因
这个错误一般是由于你程序(a.c)中使用了中文的标点符号,比如;,},+。
改成英文的就行了。
甚至有时候空格也会出现类似错误,删掉该空格 重新输入。
如果找不出来,解决的办法就是关闭中文输入法然后把有错这一行重新敲一遍。
来自:http://blog.163.com/lgs_002/blog/static/2873604320119109353553/
来自:
http://tiaozhanshu.com/computer/software/gcc%E7%BC%96%E8%AF%91%E6%8A%A5%E9%94%99%EF%BC%9A%E7%A8%8B%E5%BA%8F%E4%B8%AD%E6%9C%89%E6%B8%B8%E7%A6%BB%E7%9A%84357273277%E7%AD%89.html
http://apps.hi.baidu.com/share/detail/47329734
其实说到编码转换,那就不得不说到iconv这个库了,如果已经安装了这个工具,那在命令行下直接打这个命令就行了。下面就用这个工具来实现中文系统下的常用编码转换。

首先,来了解一下iconv这个命令的使用方法。命令格式如下:

iconv -f 源编码 -t 目标编码 文件名

-f 参数指所要转换文件的文件编码,当然必须事先知道文件的编码,不然不能正确转换。
-t 参数指希望转换成的文件编码,当然应该知道所指定文件的编码能不能转换成该编码,不然转换后的结果可能一无所用。比如你将中文编码转换成西欧的某种编码的话,是没有什么意义的。
文件名 就是你希望转换的文件的名称的,当然也可以包含路径了。

比如,将notepad.txt文件用GBK转换成UTF8,命令如下:

iconv -f gbk -t utf8 notepad.txt

如果,转换文件编码的同时不想覆盖源文件,可以使用如下命令:

iconv -f gbk -t utf8 notepad.txt > notepad-utf8.txt

如果要批量转换文件编码,可以使用以下命令:

find ./ -type d -exec mkdir -p newdir/{} \;
find ./ -type f -exec iconv -f gbk -t utf8 {} -o newdir/{} \;

将当前目录下的所有文件转换成UTF8格式放在newdir目录下。
用法: iconv [选项...] [文件...]
转换给定文件的编码。


来自:http://www.iusecms.com/page/2/
find / -path /backup -prune -o -name "mysqld" -type f -executable 2>/dev/null
解释:

find /:从根目录开始查找。
-path /backup -prune:排除 /backup 目录。
-name "mysqld":查找文件名为 mysqld 的文件。
-type f:只查找普通文件。
-executable:只显示可执行文件。
2>/dev/null:忽略权限不足的错误消息。
-o 是 OR 操作符,它在 find 命令中用于连接不同的条件。
在您的命令中,-o 用于将排除路径 /backup 和实际查找条件组合在一起。
-path /backup -prune:先排除 /backup 路径。
-o:表示如果文件路径不在 /backup 下,就继续执行后面的条件。
-name "mysqld" -type f -executable:在未排除的路径中查找名为 mysqld 的可执行文件。
这样可以确保 /backup 被忽略,其他路径按指定条件查找 mysqld。

find 是默认不递归软链接下面的文件夹子目录的:
find /data/www/ -path "/data/www/newcomment.jackxiang.com/newattachments" -path "/data/www/newcomment.jackxiang.com/attachments" -prune -o -print


Linux下find一次查找多个指定文件或者排除某类文件,在 GREP 中匹配多个关键字的方法
(1)Linux下find一次查找多个指定文件:
查找a.html和b.html

find . -regex '.*\.txt\|.*\.doc\|.*\.mp3'

(2)排除某些文件类型:
排除目录下所有以html结尾的文件:


(3)排除多种文件类型的示例:

(3)在 GREP 中匹配多个关键字的方法:
grep查找多个数字的文件:
-r 递归,-E:正则  -l:只显示文件名


多种类型文件示例:


用Awk:

参考本站:http://jackxiang.com/post/714/


通常情况下实现定时计划任务有以下几种方式:

linux下可以借助crontab+php的方式(Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序 )
windows 下有两种方式:
借助于vbscript脚本加载无窗口的服务

新建文本文件,复制以上脚本,另存为后缀为*(.vbs)的文件后即可。

上面“D:\php\php.exe D:\php\source\do.php” 这种方式可以写在bat文件中,或者window计划任务中都可以执行。
php内部支持的一种利用函数“ignore_user_abort ” 来永久执行的方案。

第三种方案,需要总是执行脚本,而且响应请求的时间是无限制的,对于定义了最大响应时间的fastcgi方式不可行,脚本还是会停止。所以需要找一种更加稳妥的方案。

**找到了**

数学是很神奇的东西。实际上定时执行,是一个时间条件执行,php中有取得时间秒数的函数time() 返回据1970年1月1日开始的秒数,而我们通常定时任务执行,可以使300秒,1000秒之类的时间间隔,意味着 。这个就好处理了,time()%timestamp==0 只要整除到了符合间隔的时间,就执行一次,恰好符合了定时的目的。

实际上最后一种简单实现,解决的是普通请求中脚本定时任务的问题,这里会受到响应时间的限制,想让这部分代码执行的更久一下可以参考ignore_user_abort和set_time_limit,如果需要大运算量的处理,就需要借助前面介绍的方式在服务器端控制定时任务了,但作为普通需求,最后一种方案是一种简单直接的实现,有一定意义!


来自:http://develop.9he.info/php/%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1%E7%AE%80%E5%8D%95%E5%AE%9E%E7%8E%B0


其它方法:
下面的这段代码,可以在当前文件夹下,生成一个test.txt,并每隔20秒,往里面写入一个时间戳,无论客户端是否关闭浏览器。

关键的两个函数:

ignore_user_abort(true),这个函数的作用是,无论客户端是否关闭浏览器,下面的代码都将得到执行。

set_time_limit(0),这个函数的作用是,取消php文件的执行时间,要是没有这个函数的话,默认php的执行时间是30秒,也就是说30秒后,这个文件就say goodbay了。
代码发布上线,用PHP来做的话很可能会用到。
使用PHP完成SVN的操作,包括复制,查看列表,删除,移动,创建目录,查看diff,更新,合并,提交,获取状态,获取commit log,获取当前版本号操作。在svn 1.6.11版本中测试通过。
来自Url:http://www.oschina.net/code/snippet_162844_7312
代码如下:
阅读全文
CVS 和Subversion 都支持分支(branch)和基线(tag),通过分支与合并,可以有效支持大项目的并行开发模式;通过基线管理,可以准确标识一组文件的版本,有效进行软件发布管理和必要时的历史回溯。

但CVS 和Subversion 在实现分支和基线的方式上存在很大的不同。CVS 在创建分支的时候,需要对所有进行分支的文件进行依次的操作,因此分支的建立成本(主要是建立分支所需的时间,或消耗的计算资源)与参与分支的文件数量成比例,项目越大,版本库越大,文件越多,分支的建立成本越高;基线(tag)的建立与此类似。

Subversion 的分支和基线是通过执行“拷贝”来建立的:回想一下在没有引入版本管理工具的时候我们是如何进行所谓的“分支”和“基线”管理的?答案显然是“拷贝” — 我们通过“拷贝”或“备份”来建立基线;同样,为支持多个开发人员可以同时进行开发,我们为每个开发人员创建一份“拷贝”。由此看来,Subversion 通过“拷贝”来建立分支和基线显得非常自然,有点“返朴归真”的意思。

由于Subversion 的全局版本号特性,Subversion 中分支或基线的创建过程,或Subversion中的“拷贝”过程,真正的操作是在版本库中创建一个到某一全局版本号的指针(pointer),不再需要针对众多的单个文件依次执行操作。因此,该操作的成本为一个很小的常数,与项目大小,版本库大小,文件数目的多少无关;并且,分支或基线的建立不需要进行版本的冗余存储,新建立的分支或基线基本不占用版本库空间,分支的后续存储空间的开销也只与修改的大小有关。

来自:http://wubiao-china.blog.sohu.com/80083880.html
最近在看C指针编程之道,于是否涉及到队列,简单介绍了下,是以指针为原型的,在网上找了一篇文章,发现其写法和书上差不多,做下备案,代码如下,有时间用gdb跟踪学习一下:
阅读全文
写给自己,So,

场景: 线上代码要升级,此次代码要上线时,但线上和线下的某几个文件不一样,不能直接覆盖,需要对比,升级文件通过svn导出(包含文件夹导出),而线上用sz(可sz不能帮助建立文件的目录,导出都在一个目录里),于是否想通过Beyond Compare做文件夹的比较。
问题: 如何把线上的导出的部分需要覆盖的文件在导出后再通过建立文件夹和线上结构一样?【要是sz能帮助在导出时就按文件夹存放好就好了,可好像没有看到有这个选项】
核心: 如何重建线上需要覆盖的文件,好让Beyond Compare比较两个文件夹。
步骤: 两个步骤
       (1)摘取线上的需要覆盖的文件名下载到线下一个文件夹中。
  把线下svn要覆盖的文件导出到目录后用find命令:find . -type f 找出所有的文件,该命令的结果已经包含了目录和文件。
  把这些文件名,前面加上sz及可导出到线下的一个文件夹中。


       (2)建立和线上一样的目录并拷贝对应文件到目录中
       建立和线上一样的目录结构:对线下svn导出的文件(注意是:export才包含文件夹,而save revision to这个的导出比较乱。参考:http://jackxiang.com/post/4847/)
       用find命令找出文件夹:
       find . -type d
       再在find结果的内容前面添加mkdir  ,后到线上导出的文件目录下运行这个mkdir 的命令:在线上代码的文件夹下生成目录。
  (3)构造cp a.php  abc/a.php 类似并运行。
  在线下svn包含目录的文件中,运行如相命令,生成文件a.txt:
  
  以上文件是一个文件名。下一步就是要一个 abc/a.php ,这个好办,直接:find . -type f 就能搞定,为b.txt,
  Linux提供了一个: paste  命令:
  
   结果如下:
   a.php  abc/a.php
  
   再vim或者awk在前面加一个正则替换实现:cp a.php  abc/a.php,即可,再到线上文件下载的目录下运行这个生成好的脚本,也就完成了把原来的文件放到对应的目录下。
有时我们在Post的Ajax请求时还是需要一个Get的请求,但Ajax在Jquery封装的Get,Post都是默认异步的,要想同步还是得更加底层,于是有了下面的代码,其实还有更好的方法,
或者在全局设置Ajax属性

再用post,get就是同步的了

网上也有,Url及内容贴在最下面:阅读全文
在Windows或者Linux下mysql安装后默认的密码为空,
又当我们又安装了mysql的管理工具
phpmyadmin后登陆时出现“空密码登陆呗禁止(参见允许密码为空)”。不能登录成功              
解决办法如下:
最新版本:phpMyAdmin-3.4.9-all-languages.tar.bz2
DownLoadUrl:http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.4.9/phpMyAdmin-3.4.9-all-languages.tar.bz2/download#!md5!ab181a3fffc89e5d5c4ebd62ccfe396b
修改如下:
分页: 118/339 第一页 上页 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 下页 最后页 [ 显示模式: 摘要 | 列表 ]