外头站着

如何用 SSH 搬家 (plesk cpanel 互搞)

星期日, 12 9 月, 2010

一般玩 WordPress 的要清楚一些概念

WordPress 包含

1.是官网下载过来的压缩包解压缩出来的一堆 PHP 文件

2.是用户上传的文件一般在 wp-content/upload/ 里

3.是插件、主题在 wp-content/themes/ wp-content/plugins/ 目录里

4.是用户产生的文字啊配置啊在 MYSQL 数据库里

MYSQL 数据库和 FTP 上去所看到的一堆文件(程序,上传的文件,主题,插件等)是分开的

而 WordPress 通过 wp-config.php 来连接 PHP 和 MYSQL 实现你产生的数据保存到数据库,以及从数据库里取出文章留言什么的给你看

所以我们备份的时候需要备份2个部分

1. 硬盘里自己目录下的所有文件 (程序,上传的文件,主题,插件等)

2. 数据库

一般备份的步骤如下

1.导出数据库到自己的目录下(这样他们就融为一体了)

2.打包整个目录(包含导出的数据库以及其他所有文件)

3.登录新的服务器,并获取压缩包,然后解压缩

4.把解压缩出来的数据库文件导入新服务器的 MYSQL 数据库里

5.修改wp-config.php 把数据库链接信息修改为新的服务器上的数据库信息

那么我们就开始吧

今天的例子是 Plesk 到 CPanel ,当然你也可以举一反三俗 P2C C2C P2C C2C 什么的
(一般P2P或C2C都有他们自己搬家工具,不用这么折腾,除非耍帅)

关于 MYSQL 数据库

1.数据库名 例子:bigcat_db

2.数据库用户名 例子:bigcat

3.数据库密码 例子:12345

具备这仨就可以搞定数据库了

关于 Plesk

用户home目录,简单说 FTP 登录上去看到的那一堆里有个叫 httpdocs 的,就是对应网站,例子:ooxx.me 的根目录
httpdocs/av.png 文件对应的URL就是 http://bigc.at/av.png

关于 CPanel

用户home目录,简单说 FTP 登录上去看到的那一堆里有个叫 public_html 的,就是对应网站,例子:ooxx.me 的根目录
public_html/av.png 文件对应的URL就是 http://bigc.at/av.png

综上所忽悠,我们需要做的是

1.导出数据库在 httpdocs 目录里 打包整个目录

2.把压缩包整到public_html目录里解压缩导入数据库

下面是每一步的截图(可能没有图)

登录老服务器

用终端(MAC/Linux)

ssh bigcat@ooxx.me
注意:linux 输密码不显示星号避免暴露位数,请自重,打完回车即可

客户端 SecureCRT (windows)

SSH服务器地址ooxx.me

端口:22

用户名bigcat

登录成功会提示
bash-3.2$
确认下我在哪里就输入
pwd
会提示
/var/www/vhosts/ooxx.me
要看看当前目录有什么文件就输入
ls -la
会在一堆列表里看到有httpdocs
那么我们就进入这个目录,输入
cd httpdocs
再 pwd 一下,提示
/var/www/vhosts/ooxx.me/httpdocs
果然已经进入了
继续
ls -la
可以看到出来的一堆,就是FTP里上传的所有文件了

OK,这会儿要导出数据库
输入
mysqldump -u bigcat -p bigcat_db > ooxx.sql
回车输入数据库密码
如没啥提示就是导出成功了
ls -la
一下应该能看到多出来的 ooxx.sql 文件,即我们导出的数据库

接下去我们要打包
输入
tar -czf ooxx.tar.gz * .[!.]*
如果你没有.开头的文件例如 .htaccess
可能会提示
tar: .[!]*: Cannot stat: No such file or directory
不用管就是
这会儿
ls -la
一下应该可以找到 ooxx.tar.gz 这个压缩包了

老服务器就到此为止了
接下去登录新服务器
新建一个ssh链接
用新服务器的SSH帐号登录
登录后
cd public_html
切换目录从用户home目录到网站根目录
获取老服务器的文件
wget http://bigc.at/ooxx.tar.gz
会有个拉轰的文本进度条,速度一般都是MB/s
解压缩
tar -xzf ooxx.tar.gz
导入数据库
mysql -u bigcat -p bigcat_db < ooxx.sql
注意:是新服务器的数据库信息,没有的话去 CPanel 里新建一个
没啥提示就是成功了
再注意:如果新老数据库信息不一致,需要更新 wp-config.php

尾声
安全问题,请删除导出的数据库文件 ooxx.sql 和 ooxx.tar.gz
删除是 rm 文件名
例如
rm ooxx*
因为 wp-config.php 里的密码是明文的
提醒:这种明文密码建议千万别和自己其他密码一样

一般这会儿就可以去域名商网站更改 A Record 为新服务器的 IP,等生效后即可
不一般的同学会先配 HOST 看看,确保没问题了再改域名IP
那 HOST 是个什么东西我就下次写了

有啥看不懂的请留言,我更新
搬家 DIY 的好处是一来速度快,二来命令行耍帅

文中涉及一些命令可以参考 SSH 入门教程(常用命令)

ssh 如何统计当前目录文件数

星期六, 5 6 月, 2010

很多主机暗地里会限制文件数量, 或有朝一日突发奇想想了解我的站有多少个文件捏?

只需要登录SSH运行如下命令
find . -type f -print |wc -l

虽然快餐式的命令很威武,但是要好好学Linux命令建议从基础开始,下面是解释
find 这是一个叫find的命令
空格
. 这个点表示当前目录
空格
-type f 这个type有8个值,其中 f 代表regular file
空格
-print 带这个参数为了把查找结果每行一个显示出来
空格
| 这根线,恩恩,它看起来像根JJ,但其实是个pipe
空格
wc 这个命令,厄… 这命令是用来显示新行,单词,比特数量的
-l 这个wc的参数相当于 –line 作用是显示总行数

总结成一句连贯的命令就是
在当前目录查找所有文件并把每行一个文件名的结果输出给wc
wc再数一下有多少行
也就是当前目录总的有多少文件数了

如何解决 SSH 导入/导出中文数据库乱码

星期三, 9 12 月, 2009

you-are-my-sunshine
哈哈,好久没有看日语都忘光了, 突然看到这张相片
俺那她 挖 瓦塔希 no 光芒 呆死
You are my sunshine~

MYSQL 数据库

导出数据库
mysqldump -u 数据库用户名 -p 数据库名 > db_ooxx.sql
导出数据库为db_ooxx.sql

导入数据库
mysql -u 数据库用户名 -p 数据库名 < db_ooxx.sql --default-character-set=utf8
把当前目录的 db_ooxx.sql 以 utf8 编码导入,当然你原来是gbk就改成gbk
中文blog经常遇到这个情况,一不小心就 ??? 满脑子都问号了

补充到:
SSH 入门教程(常用命令)

SSH 入门教程(常用命令)

星期日, 25 10 月, 2009

适用范围: 有SSH权限的空间,比如 miao.in
难度: easy
学习时间: 5分钟
工具: 推荐 putty
注意:涉及密码的工具千万要用官网的原版,很多汉化版捆绑后门,严重安全问题

1. 基础命令

A.显示文件源代码
cat ooxx.php
没错, cat 是一个常用查看源代码的命令,优点是很方便很可爱,缺点是会直接刷刷刷显示所有源代码,文件太长只能看到屁股后面的那坨代码

B. 查看当前目录
pwd
pwd不是password,而是查看当前目录,会输出完整的路径

C. 更改目录 Change Directory (cd)
cd /path/to/directory/
有DOS基础的同学应该会淫荡的一笑吧,路径可以用相对也可以用绝对

D. 列出文件/子目录 Listing Files/SubFolders(ls)
ls
默认只显示文件名,你也可以带个参数玩,比如
ls -alh
带 -alh 输出会很爽… 自己试试, 大猫喜欢把 ls -alh 颜射为 ll
-a显示全部文件
-l比较详细的列表
-h人类能看懂的比如把1024显示为1K

E.帮助
命令 --help
任何命令后面带一个 –help 都会显示一个简洁版的帮助,记不住参数就查一下

F.获取远程文件 wget
wget http://bigc.at/me.jpg
就会获取远程的me.jpg文件到当前目录,一般搬家的时候用这个
让服务器去获取另一个服务器的数据,速度会快的完全不像男人

G.压缩解压缩
unzip wordpress.zip
如果文件是zip形式的,比如刚从wordpress主站wget了一个压缩包过来,只需要输入unzip 文件名,就可以解压缩到当前目录了
tar -czvf ooxx.tar.gz * .[!.]*
把当前目录所有文件以tar命令打包为ooxx.tar.gz文件
-c创建
-z用gzip压缩方式
-v显示压缩过程
-f搞成一坨file
tar -xzvf ooxx.tar.gz
解压缩 ooxx.tar.gz 里的文件到当前目录
-x解压缩
-z用gzip压缩方式
-v显示压缩过程
-f搞成一坨file

2. 文件系统命令

A.显示磁盘使用率
df
显示整个主机的总容量以及比率

B.列表文件/子目录使用率 (du)
du
会列出所有文件以及子目录的大小,不是人看的…
du -sh
-s就是summary,只输出当前文件夹总容量
-h一般在linux就是human给人看的意思,会把1048580b转换为1mb显示
du -h --max-depth=1
嘿,只列出当前文件夹和第一级子目录占用大小

C.删除文件 Remove files (rm) 少儿不宜的命令,总是需要确认
rm -vf miao.in
强制删除miao.in这个文件并不需确认,列出删除文件列表

强制删除,不要执行,除非你知道你在干嘛…
-v一般v参数都是显示过程的意思
-f 强奸的单词会不会拼? F-U-C-K的缩写,不确认直接F-word了
rm -rf ooxx
删除ooxx这个文件夹,包含它的子文件和子文件夹

删除文件用上面的命令,但删除文件夹的时候就需要跑下遍历了
-r 比较本土化,是”日”的缩写,在所有命令里都是 recursive 的意思,有些命令是大写的 R 需要注意

D. 拷贝文件 (cp)
cp ooxx.me miao.in
复制ooxx.me这个文件并重命名为miao.in

E. 移动文件/重命名 (mv)
mv ooxx.me miao.in
重命名ooxx.me为miao.in
如果加路径,就是移动到某个路径并重命名为miao.in
和DOS不一样,移动文件和重命名换个思路,其实是一个套路,不是么?

F. 创建空文件 (touch)
touch miao.in
这个很色情的命令,就是创建一个 miao.in 的空文件
如果touch了已有的文件,则会更新那个文件的日期为当前
如果touch次数多了,会high

3. 文件权限

A. 更改文件权限 (chmod)
chmod 777 miao.in
默认文件为644,文件夹为755

TIP:
1st digit=Owner; 2nd=Group; 3rd=Other
(-rwxrwxwrx = 777, -rwxr-xr-x = 755, -rw-r–r– = 644, etc.)
7 = Read + Write + Execute
6 = Read + Write
5 = Read + Execute
4 = Read
3 = Write + Execute
2 = Write
1 = Execute
0 = All access denied

4. 高级命令

A. 查找. 常用命令,让我们来找一下10MB以上的文件吧
find . -type f -size +10000k -exec ls -lh {} \; | awk '{ print $5 ": " $9 }' |sort -n

B. Grep, 手里握着大西瓜
ls -alh | grep ooxx
只显示含有ooxx的那几列,当然你在cat的时候配合这个用找文件里的某些字段很方便

C. 分页 (Less/More)
less miao.php
如果源代码很长,则会分页显示,上下箭头滚动,输入q退出
tail -n 1000 /var/log/httpd/error_log | more
可以用 | more 参数来滚动显示页面或行

5. MYSQL 数据库

导出数据库
mysqldump -u 数据库用户名 -p 数据库名 > db_ooxx.sql
导出数据库为db_ooxx.sql

导入数据库
mysql -u 数据库用户名 -p 数据库名 < db_ooxx.sql --default-character-set=utf8
把当前目录的 db_ooxx.sql 以 utf8 编码导入,当然你原来是gbk就改成gbk
中文blog经常遇到这个情况,一不小心就 ??? 满脑子都问号了

6. VI

留意在vi里敲的每一个键… …
VI 基础入门

Linux 是很敏感的系统,特别是大小写,
唉,周末又木有了

 

vi 基础入门

星期二, 23 6 月, 2009

vi
翻译自Understanding basic vi (visual editor)
难度系数: 中 估计需要5分钟

Vim 是一个基于高效文本编辑而设计的文本编辑装逼利器
是命令行编辑器的不二选择,当然在图形界面偶还是推荐 Intellij IDEA, 除非你真的很牛逼或很装逼
通常的 vi 其实调用的也是vim,在大多数的UNIX系统里默认都会捆绑一个

vi是一个全屏编辑器,丫有俩种操作模式

  • 命令行模式 – 每个字符打下去都会被当成命令. 这是启动 vi 后的默认模式. 按 Esc 可返回此模式.
  • 插入模式 – 这个就是咱熟悉的编辑模式. 要开启这个模式请在命令模式下输入 i 它代表邪恶的小黄瓜insert

提醒:

vi 对大小写敏感. 在输入命令的时候要注意别搞混了, 不然生出来的孩子都不像你

学习vi最好的方式就是跟着 vimtutor ,你可以在连接SSH后输入下面的命令
vimtutor下面是对新手非常有用的几个常用命令
都需要在命令行模式跑,也是就按了Esc后的那个

用 vi 打开某个文件
只需要输入vi 空格 文件名
vi filename如果存在则打开,不存在则创建

跳转到某一行
大写的G跳到最后一行
G第一行就是 1G 或 gg
1G如果你爱玩war3,可能更喜欢输入俩小g
gg
在 vi 中滚来滚去
当然你可以用箭头上下左右… 但
不懒的程序员不是好程序员,
除了懒得用鼠标,键盘太长,偶才不要甩手腕捏

  • 输入 h 向左移动
  • 输入 l 向右移动
  • 输入 k 向上移动
  • 输入 j 向下移动

你会发现在google reader里也能用 jk 翻文章…

在 vi 里搜索
如果你要搜索一下早川濑里奈那就可以用 “/”
/早川濑里奈搜索下一个也就是next,只需要输入 n
n 你会发现在google reader里也能用 / 搜索…

退出 vi
退出但不保存
:q!退出并保存
:wq

上面的例子只是 vi 淫威之九牛一毛毛. 爱学习的小盆友还是推荐在 SSH 登录后跑一下 vimtutor

一分钟建立 jQuery API 在线手册站

星期六, 6 6 月, 2009

jquery

经常要查手册, 干脆搞个在线版

http://jquery.ooxx.me

想要和俺一样1分钟就搞定需要如下条件

  1. SSH
  2. SVN

Step1: 创建一个二级域名 jquery.ooxx.me

Step2: 通过 SSH 切到 jquery 二级域名的根目录

Step3: 通过 SVN 获取最新的手册文档

输入命令:
svn co http://jquery-api-zh-cn.googlecode.com/svn/trunk ./
解释:
使用 svn 的 checkout 命令,让远程目录 和 ./(当前目录) 搞上

Have fun, dude~

ちょっと待って !
99%的可能你会失败… 因为这个trunk里包含了中文文件名
会提示 svn: Can’t convert string from ‘UTF-8’ to native encoding

解决方案:
Step2.5 的时候让 root 同学跑一下 LANG=”zh_CN.UTF-8″

那以后有了更新怎么办呢?
运行 svn up 就会自动去远程目录同步过来鸟

感谢翻译的同学们~

(mt) Media Temple 优惠码 75折 (25% off)

星期六, 21 3 月, 2009
step 1: CLICK ME! ( Media Temple Coupon link)
step 2: copy the Code: retailmenot

that’s all, have fun!
Discount: 20% discount on (gs) and (dv) hosting plans for the life of the plan.

mt感谢各位父老乡亲相爱,这次的DV合租进行的非常顺利
介于本人十分爱显,肯定会按捺不住…进行一番总结

Media Temple 优惠码
从促销链接进入
促销链接点我
在选了GS或DV套餐后,进入第三环节Contact & Payment Info
在右图所示的侧边红色框内输入  retailmenot 价格马上会降低20%

数据转移

一般我们是这么被干的
ftp下载文件到本地
数据库导出sql到本地
然后ftp上传到新服务器
新数据库导入sql

文件数量越多,速度越慢

一般我是这么干的
SSH登录到新老服务器
然后在老服务器上打包整个网站

tar -cf ooxx.tar.gz *

tar就是打包 -cf参数你可以记忆成create file
ooxx.tar.gz压缩包文件名 * 压缩所有文件

5秒钟不到压缩成功

tar

接下去在新服务器上使用

wget http://bigc.at/ooxx.tar.gz

来获取老服务器上的压缩包,下面是运行结果

–12:30:48– http://bigc.at/ooxx.tar.gz
Resolving ooxx.me… 72.47.224.69
Connecting to ooxx.me|72.47.224.69|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 119828480 (114M) [application/x-tar]
Saving to: `ooxx.tar.gz’

100%[====================================================================================>]

5.85M/s in 37s – `ooxx.tar.gz’ saved

好,37秒下载了一百多MB的压缩包
接下去当然是解压缩了

tar -xf ooxx.tar.gz

-cf 创建变成了 -xf
x就是extract解压缩么

一分钟不到,转移完成

转移完毕一定删除掉压缩包,防止敏感信息暴露,比如wp-config.php

icbu数据库转移的话推荐Evance推荐给偶的帝国备份王

特别是处理大sql的时候,自动分卷导入导出
mysql5到mysql4也能无缝转换

加班到早上四五点,晕头转向,先zzZ

最后
送上国际站某同学呼啦啦啦… 啦