vlambda博客
学习文章列表

VPS基本操作,大数据量网站迁移, 及linux常见命令

一、VPS网站流量监控


首先安装iptop,参考了http://www.vpser.net/manage/iftop.html,其实里面就2点就ok了:


1. 运行:apt-get install iftop


2. 界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。


中间的<= =>这两个左右箭头,表示的是流量的方向。


TX:发送流量


RX:接收流量


TOTAL:总流量


Cumm:运行iftop到目前时间的总流量


peak:流量峰值


rates:分别表示过去 2s 10s 40s 的平均流量


安装好之后运行iptop,发现VPS上的一个网站确实流量占用的非常大,每秒在4M作用。再看一下VPS流量,使用量已经超过90%了。先不管什么原因了,把网站先停了再说。打开网站根目录下的.htaccess文件,加入RewriteRule (.*) – [F],先让网站返回403.


然后把网站进行了转移,转到一个不是很重要的VPS上。网站转移的话,先对现在的网站进行打包压缩,参考了http://www.douban.com/note/57861194/,命令为tar -zcvf /tmp/etc.tar.gz site.com。打包好之后把压缩包用mv命令转移到一个服务器上的一个网站下,然后在目标VPS上运行wget命令直接获取压缩包,然后进行解压缩。解压缩命令为tar -zxvf /tmp/etc.tar.gz。这样网站的文件部分就实现转移了。


最后对数据库进行转移。数据库转移中遇到的问题是数据文件太大,需要先改一下vps的php.ini参数,具体修改三个地方即可:


1、执行时间限制的延长或取消:max_execution_time 默认是30秒.改为 max_execution_time = 0 (0表示没有限制)或更大点的数字;


2、查找 post_max_size = 2M (默认为2M)改为想要的大小,如:post_max_size = 70M


3、upload_max_filesize 表示所上传的文件的最大值。查找upload_max_filesize,默认为8M改为upload_max_filesize = 70M


修改完之后通过phpmyadmin就可以实现数据文件的导出,以及在目标VPS的导入了。


文件和数据转移完之后,修改DNS,恢复根目录下的htaccess文件,网站就又可以正常访问了。但还需要解决的问题是对网站的程序进行修改,以免再发生类似的流量问题。 


二、大数据量网站快速迁移


先看数据文件问题。如果数据库导出的文件超过2M,就不能在新的数据库中直接导入,需要修改数据库和php的相关设置(详见VPS流量问题)。这个办法在数据文件有几十兆的时候还是有效的,但数据文件超过百兆,甚至到G的时候就会发现,在导入数据的时候经常会断,或出现导入不全的情况。这时候可以用下面的方法解决。


1)         虚拟主机上导出数据库sql格式


2)         sql文件先用zip压缩,上传到VPS空间


3)         用putty登陆vps


4)         用unzip解压zip文件,得到××.sql。


5)         进入mysql命令操作:mysql -u root -p进入mysql


6)         use 数据库名(已经建好的数据库)


7)         source ××.sql执行sql语句,实现数据导入。


再看文本文件问题。很多虚拟主机是有文件压缩功能的,但在网站太大的时候经常压缩不了,或压缩不全。如果你的虚拟主机能够给你提供网站的压缩文件,那必将为你迁移网站节省大量时间。如果不能,传统的方法是你用FTP把所有的文件都下载下来,然后再传到VPS的空间上去。如果你的网站达到几G的话,会耗费大量的时间和精力。这时候可以尝试下面的方法:


1)         ftp client安装:apt-get install lftp(lftp,功能更强大的ftp)


2)         cd命令进入htdocs文件夹(或其他存放网站文件的目录)


3)         lftp(进入lftp命令模式)



5)         user 用户名


6)         同步ftp文件夹和vps文件夹:mirror -c –parallel=number remotedir localdir(隐藏文件不能同步,需要手动下载后再传上去,如.htaccess文件)


思路很简单,就是通过VPS直接登录到虚拟主机的FTP,然后直接将ftp中的文件同步到vps上。这样免去了比下到本地再上传减少了一步,能节省一半时间。而且,如果你的主机在国外的话,国外的网速比国内快好几倍,将能为你节省更多的时间。


备注:lftp 登录提示严重错误: Certificate verification: certificate common name doesn’t match requested host name ……这是因为域名供应商用了自己签的证书,lftp 不信任它,为了防止中间人攻击,拒绝继续操作。解决办法很简单。只要你能充分相信你的host,就在 lftp 里加上这样一句set ssl:verify-certificate no或者,可以在敲 lftp 命令的时候这样输入:lftp -e “set ssl:verify-certificate no”


查看php配置信息一个方法:新建一个.php文件输入<? phpinfo(); ?>,然后访问就会显示php配置信息。比如你搜索php.ini就可以找到他的绝对位置。


Linux常用命令:


查看目录内文件:ll,等同于ls -l


查看vps使用情况:df -h


查看当前目录文件大小:du -h --max-depth=1


重启节点:reboot


删除命令:


rm -rf   目录名字


-r 就是向下递归,不管有多少级目录,一并删除


-f 就是直接强行删除,不作任何提示的意思


生成目录countryminingcomru


mkdir countryminingcomru


复制countryminingcomde/内部文件及文件夹到countryminingcomru/内


cp -r countryminingcomde/ countryminingcomru/


重命名abc到123


mv abc 123


压缩解压缩:


压缩:


1. tar – czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz


2. tar -czf + 打包后文件名 + 需打包文件夹名 (tar czfv 显示进程细节)


3. tar czfv site.tar.gz 网站路径1/ 网站路径2/… (多路径中间用空格分隔)


解包:tar xvf FileName.tar


更改文件属性权限所有者等:


chmod -R 753 ABC/  (-R循环修改文件夹及内容权限,ABC文件夹)


chown命令更改文件拥有者


chown [-R] 账号名称 文件或目录, eg:chown -R nobody grindercrusher/


chown [-R] 账号名称:用户组名称 文件或目录


chgrp命令更改文件所属用户组


chgrp [-R] 用户组名称 dirname/filename …


history 看输入命令历史记录


删所有日志先停下Apache,   /opt/lampp/lampp stopapache


/opt/lampp/etc/xampp下面startftp和startssl分管ftp和ssl服务,不用可以删除


ps aux|grep username  查看特定用户运行哪些程序


ps aux  查看lampp的程序都有哪些用户运行


apt-get upgrade 更新所有已安装的软件包 (定期漏洞修复)


apt-get dist-upgrade 将系统升级到新版本 (定期漏洞修复)
http://man.linuxde.net/apt-get