1 |
|
Can't init tc log Aborting
今天的VPS非常卡,不小心输入个命令 /usr/local/mysql/bin/mysqld 然后卡的不动了,我重启了。结果mysql就启动不了了。
查看 tail -n 50 /usr/local/mysql/data/***.err
提示
Can't init tc log Aborting , Failed to open log, File './mysql-bin.000023' not found
解决办法:
问题出在mysql-bin.0000023上。
mysql5运行一段时间,在mysql/data目录下出现一堆类似mysql-bin.000***的文件,从mysql-bin.000001开始一直排列下来,有的占用了大量硬盘空间,高达上百兆,我的高达20多G。 这些文件是MySQL的事务日志log-bin。删除也是没事的。logbin主要是用来做回滚和增量备份的。 还可以在my.ini里把log-bin注释掉,就不产生日志文件了。
vi /etc/my.cnf
配置中的log-bin注释掉,
1 | #log-bin=mysql-bin |
果然问题解决
log-bin=mysql-bin配置与主从配置有关,并且它记录了所有数据库的操作,用于灾难恢复,所以注释掉它也是有一定风险的,需要定时备份数据库!
wordpress mu 迁移域名
迁移时可以把原先的数据库导出为.sql格式,然后再用notepad++或其它工具替换里面的所有域名为自己的新域名比如,替换crusherknowledge.com为crushertech.net ,这样你再导入新的数据库,这样便完成的数据库的迁移工作。
创建数据库并为新数据库添加用户名
1 | CREATE DATABASE 'newdbname'; |
如果你没有这样做,这些表中的内容你需要修改。可以先修改wp_options, wp_blogs, wp_site 这几个重要的。然后再把所有的wp_N_posts和wp_N_options表中的内容替换下。
主要修改的表为:
wp_N_posts (N为每个博客的ID,下同)
wp_N_options
wp_blogs
wp_site
网站迁移好之后需要重定向,这个比较重要。如果你的wpu是二级域名格式的。可以这样重定向到新域名:
下面的例子为 http://crusherknowledge.com 重定向到 http://crushertech.net
1 | RewriteEngine On |
这样便和原先的网站一模一样,只是域名不同而已。
了解更多关于htaccess
的重写规则请访问:
http://man.chinaunix.net/newsoft/Apache2.2_chinese_manual/mod/mod_rewrite.html
从google中删除你网页的索引:
PHP修复未正常关闭的HTML标签(支持嵌套和就近闭合)
1 | <?php |
http://yungbo.com/php/php-fix-unmachted-html-tags-no-phptidy-extension.html
win7取得管理员权限
把下面文件保存为文本文件,然后把扩展名txt改为reg . 双击文件导入即可,如果装了360会提示你,允许就行了。
1 | Windows Registry Editor Version 5.00 |
php5.3.9下无法关闭thread safety
/usr/local/php/bin/php -m
Failed loading /usr/local/php/lib/php/extensions/no-debug-zts-20090626/ZendGuardLoader.so: /usr/local/php/lib/php/extensions/no-debug-zts-20090626/ZendGuardLoader.so: undefined symbol: compiler_globals
这个错误是因为ZendGuardLoader 必须是要在Thread Safety Disable 的情况下才能使用。别无它法,只有重新编绎。但上网找了很久,没有答案解决。因为重新编绎的方法没一个管用的,无法使Thread Safety 关闭。 此问题不解决 Zend Optimizer 也便安装不了。
这个问题一直没有解决。回答的都不对。
说是要apache 编绎时 --with-mpm=prefork
,不对!
说是php重新编绎使用 --disable-maintainer-zts
或 --disable-roxen-zts
或 --without-roxen
或 --disable-zts
, 不对!
这是国外一个人的提问,没有解决。
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/PHP_Installation/Q_26890298.html
等待解决。
安装apc为php加速
Alternative PHP Cache
(APC)是 PHP 的一个免费公开的优化代码缓存。它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码。
安装方法:
1 | wget http://pecl.php.net/get/APC-3.1.9.tgz |
配置php.ini
1 | vi /usr/local/php/lib/php.ini |
[APC]
extension = “/usr/local/php/lib/php/extensions/no-debug-zts-20090626/apc.so”
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 32M
apc.ttl = 600
apc.user_ttl = 600
apc.num_files_hint = 0
apc.write_lock = On1
2
然后重启Apache
service httpd restart`
lftp的用法
lftp支持tab自动补全
登陆方法
1 | lftp username:password@ftpaddr:port(defalut:21) |
!
可执行本地端 shell 中的命令, 如 !ls /usr/local/bin/
由於 lftp 并没有 lls(显示本地端档案列表的指令), 故可用 !ls 来替代。
下载:
mget -C *.jpg (把所有pdf文件以允许断点续传的方式下载,m代表multi)
mirror aaa/ (把aaa目录整个下载下来,子目录也会自动复制)
pget -c -n 10 file.dat (以最多10个线程并允许断点续传的方式下载file.dat,可以通过设置pget:default-n的值而使用默认值)
mirror OPTS remote [local]
下载整个目录(楼上的 get 只能用来抓档案)
-c 续传
-e 这个要小心一些, 比较远端和本地端的档案, 假如远端没有的, 就将本地端的档案删除, 也就是将本地端和远端资料同步。
-R 上传整个目录
-n 只下载较新的档案
-r 不用递回到目录中
–parallel=n 同时下载 n 个档案(预设一次只下载一个)
上传:
put,mput,都是对文件的上传操作,和get,mget类似。
mirror -R local_dirname (把本地目录以迭代(包括子目录)方式上传到ftp site)
mv
将远端的 file1 改名为 file2
mrm
用 wildcard expansion 方式来删除远端档案
lftp登陆
lftp登陆常用格式:
lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site]
[-d]
在debug mode运行。
[-e cmd]
执行指定的命令。
[-p port]
指定连接端口。
[-u user[,pass]]
登陆的用户名和密码。
[site]
FTP服务器地址。
例如:
lftp -p 21 -u admin,123456 ftp.aaa.com
表示使用用户名admin、密码123456登陆ftp.aaa.com这个站点,端口为21。
简便格式:
lftp user:password@site:port
例如:
lftp admin:123456@ftp.aaa.com:21
同样可以登陆。
随后就和其它命令行的ftp工具一样使用ftp内部命令进行控制。登陆后输入help可以查看支持的命令。
2、lftp的mirror命令
lftp登陆成功后,使用mirror命令用来备份文件。
将远程服务器上的文件备份到本地:
mirror [选项] [远程目录] [本地目录]
将本地文件备份到远程服务器上:
mirror -R [其它选项] [本地目录] [远程目录]
常用选项:
-c, –continue :如果镜像过程中连接中断,重新开始。
-e, –delete :删除不在远程服务器上的本地文件。
-n, –only-newer :下载远程服务器上的新文件,不能和-c一起用。
-R, –reverse :将本地文件镜像传输到远程服务器上。
-v, –verbose[=level] :设置监视级别,范围0-3,0表示不输出,3表示输出全部。
举例:
mirror -R –delete –only-newer –verbose /home/aaa.com /public_html/web/aaa.com
将本地/home/aaa.com目录下的文件备份到远程服务器/public_html/web/aaa.com目录。
mirror --delete --only-newer --verbose /public_html/web /tmp
将远程服务器上/public_html/web目录下的文件备份到本地/tmp目录下。
3、一条命令实现lftp登陆和mirror
使用lftp的-e选项,例如:
1 | lftp -e "mirror -R --delete --only-newer --verbose /home/aaa.com /public_html/web/aaa.com" -p 21 -u admin,123456 ftp.aaa.com |
登陆后自动执行-e选项中的命令。
注意:如果远程FTP服务器是Pure-FTPd [privsep] [TLS],执行命令会报错
WARNING: Certificate verification: Not trusted
WARNING: Certificate verification: The certificate’s owner does not match hostname ‘www.xxx.com'
并且停留在[Making data connection…],连接不上。
需要编辑lftp的/etc/lftp.conf:
vim /etc/lftp.conf
在最后加入:
debug 3
set ftp:ssl-auth TLS-P
set ftp:use-feat no
再次尝试查看详情是否有报错。
PS:lftp默认使用PASV模式,如要使用PORT模式,登陆后执行set ftp:passive off,或者直接将其加入到/etc/lftp.conf中。
4、lftp多线程下载
lftp还可以做为一个多线程下载工具。
常用选项:
pget -n :设置使用线程数。
-c :断点续传。
举例:
1 | lftp -c "pget -n 10 http://sourceforge.net/projects/kvm/files/qemu-kvm/1.2.0/qemu-kvm-1.2.0.tar.gz" |
5、lftp使用问题
1)使用lftp的mirror命令备份时报550错rm: Access failed: 550 dirname: Directory not empty
在lftp命令开头添加:set ftp:list-options -a
是因为该文件夹下有隐藏文件,服务器默认不显示,所以删不掉。
2)设置lftp超时时间和重试次数
在lftp命令开头添加:
1 | set net:timeout 10;set net:max-retries 2;set net:reconnect-interval-base 5;set net:reconnect-interval-multiplier 1; |
使用示例:
lftp -e "set net:timeout 10;set net:max-retries 2;set net:reconnect-interval-base 5;set net:reconnect-interval-multiplier 1;set ftp:list-options -a;mirror -R --delete --only-newer --verbose /home/aaa.com /public_html/web/aaa.com" -p 21 -u admin,123456 ftp.demo.com
tar 压缩与解压缩打包命令
tar [-cxtzjvfpPN] 文件与目录
参数:-c
:建立压缩文件的参数命令(creat的意思)-x
:解压缩文件的参数命令-t
:查看tar包里文件的命令特别注意,在使用参数时,c/x/t
只能有一个,不能同时存在
因为不可能同时压缩与解压缩。-z
:是否同时具有gzip的属性,即是否需要用gzip压缩-j
:是否同时具有bz2的属性,即是否需要用bzip2压缩(记不住的就是它)-v
:压缩过程中显示文件,这个常用,呵基本上我现在每次解压都会看一下里面的文件-f
:使用文件名,之后立即加文件名,不能再加别的参数-p
:使用原文件的原来属性(属性不会根据用户而变),这个从来没用过。。-P
:可以使用绝对路径来压缩-N
:比后面接的日期(yyyy/mm/dd
)还要新的才会被打包进新建的文件中–exclude FILE
:在压缩的过程中,不要将FILE打包
呵,基本上我现在常用的四个命令如下:
压缩成gzip文件:
1 | tar -zcvf shell.tar.gz shell/ |
将gzip文件解压:
1 | tar -zxvf shell.tar.gz |
压缩为bz2文件:
1 | tar -jcvf shell.tar.bz2 shell/ |
将bz2文件解压:
1 | tar -jxvf shell.tar.bz2 |
如果只想将文件打成tar包,不做压缩:
1 | tar -cvf shell.tar shell/ |
同样,解压你也就知道了
1 | tar -xvf shell.tar |