浏览模式: 标准 | 列表 全部文章

如何备份VPS数据

今天一个朋友问我是如何备份VPS数据的,索性撰文一篇,方便有需要的朋友。

首先,需要约定一下,本文主要是针对在国外,特别是VPS在美国的用户,国内VPS用户可以看本文前半部分即可,呵呵。

目前我所使用的VPS为centos linux系统,直接ssh登陆后将需要备份的数据进行tar命令打包(注意对mysql这类数据正被进程所使用中的服务要先进行关闭服务操作,否则数据损坏就不好了)。

将is36.com文件夹进行打包操作:#tar xvf is36.tar is36.com/

打包完成后使用mv命令将它移动到可访问的网站目录下,用迅雷工具直接下载,经测试,在夜里下载基本可以达到带宽的峰值,我所测试的是100M光纤,夜间下载数据包达到了3-5M/S。

好了,国内VPS用户看到这里就行了,下面讲的就是针对国外VPS用户二次备份数据:

根据我的经验,下载VPS上的数据包是非常快的,而要把数据直接从本地上传到服务器上,那是非常吃力的,即便是我测试100M光纤的上传速度也是不给力的。而我实际操作过程中是采用将数据先通过FTP上传到我国内的服务器上,然后在VPS上执行wget将数据包下载到VPS上,这中间的时间差,是我不想的。如果说下载数据到本地备份算是一次备份,那么将同样的数据包传到国外的服务器上就算是二次备份了。选择国外服务器有几点考虑:

  • 国外宽带足,网速快
  • 方便数据恢复(特别是重装VPS可以快速上传与下载)

经测试,从VPS上上传数据包到美国的付费FTP空间,平均速度达到1.8M/S,非常强势。

那么我们开始进行linux下ftp上传数据操作,centos默认是没有安装ftp客户端工具的,可以用yum命令安装:#yum install ftp

安装完成后我们就可以进行FTP上传备份数据:

  1. cd /back/ --转入数据备份目录
  2. ftp demo.is36.com --ftp到主机
  3. g --输入用户名
  4. is36 --输入密码
  5. put is36.tar --上传数据包
  6. bye --上传完毕退出ftp

下次需要数据包只要ftp上去get is36.tar即可。当然,如果你没有其他国外空间而且仅仅是为了临时保存一下数据,你可以咨询你的VPS提供商,一般情况下他们会提供一个临时的FTP或者帮你先保存下数据,我所选择的VPS服务商就很友好地帮我解决过这种问题。

网上有看到利用godaddy免费空间进行VPS数据定时备份到godaddy空间的,有需要的可以自行搜索一下。


最后,推荐一下本人使用的VPS提供商RASHOST 瑞豪开源 http://rashost.com 推荐他们的原因有3:我的VPS已经在上面稳定运行近2年;VPS不限流量;客服反应速度不错!具体可以看我的文章《使用RASHOST(瑞豪开源)vps一年之感

另外,本文中我所使用的FTP空间是著名的老鹰主机“Hawk Host” 详情请浏览:http://www.hawkhost.com/ (目前已经支持支付宝付款,4月份优惠码“April2011”在购买Shared Hosting型号主机可以获得首次50%优惠,也就是说最便宜的basic主机原价需要$39.48,折后折换成RMB就是130元左右,适合做外贸网站,3G的空间也适合备份数据。具体优惠码见:http://hawkhost.is36.com/

Tags: vps, 备份, 数据

解决:Table '[Table]stats' is read only

今天在迁移网站的过程中遇到了数据表只读的情况:table '[Table]stats' is read only

经过分析尝试,得出一些经验,分享一下:

1、这个问题一般出现在迁移mysql数据库,一般来说需要先检查用户与权限的问题,比如有某一个mysql数据库为is36,我们的mysql管理用户与组均为mysql,那么我们通过命令设置它的所有者为mysql:#chown mysql.mysql is36/*

2、再设置数据库中的所有表信息为660权限,也就是所有者mysql与所在的mysql用户组可读可写:#chmod 660 is36/*

3、以上操作完成后数据库表访问权限问题应该是没有了,但是依旧会显示这个错误,那么进入phpmyadmin,尝试对这个数据表进行repair(修复)操作,如果提示修复成功,那么这个read only的问题应该是解决了,回到页面上刷新一下即可。但是在我测试的过程中,也有一些数据表提示read only,但却修复失败,那么继续往下走。

4、进入mysql的bin工具目录,执行如下命令:#./mysqladmin -u<username> -p flush-tables 其中<username>是你的mysql管理员用户,一般为root。执行完成这条命令,再去刷新页面,应该是正常了。

Tags: mysql, table, read only, flush-tables

SM总线控制器驱动下载

sm总线控制器是什么?有兴趣的看:http://baike.baidu.com/view/284288.htm

如果你的机器是intel的主板,那么就到这里下载最新的SM总线控制器驱动即可:

Intel Chipset Software Installation Utility 9.2.0.1025

安装该驱动后,电脑中的“SM 总线控制器”就会消失了。

Tags: sm总线控制器

不被浏览器拦截的弹出窗口JS代码

注:本代码从某网站提取出来的,分析并分享一下,正冰仅作技术探讨,请勿用于影响广大用户正常浏览内容的页面中。 

此JS代码使用方法

1、在你需要弹出新页面的页面中加入脚本代码如下<script src="ad.js"></script>,其中ad.js来自压缩包(见文末)。

2、修改ad.js中的广告代码如下(举例): 

ad[0] = 'http://www.is36.com';

ad[1] = 'http://blog.is36.com';

你可以自行增加ad[2]或者更多,这里的广告是作为一个轮询使用,避免用户一直只看到同一个广告影响体验效果。另外var cookie_time = 12*60*60;代码段为定义cookie过期时间,这表示定义12小时后cookie过期,用户如果12小时后访问网站,网站会重新弹出广告页面,否则在cookie过期前,网站将不再弹出页面。

3、在ad.js代码中引用了pop.js代码,该代码实则为弹出广告的精华所在,囊括了各类浏览器的弹出处理方式。 

此JS代码的优点

  1. 可以成功穿越IE6/7/8,firefox3.6,360安全浏览器3.7,搜狗浏览器,腾讯TT浏览器,google chrome浏览器10.0,基本上秒杀了市场上主流的浏览器了。
  2. 适合中大型多页面网站,js代码中加入cookie功能可设定cookie的时效,可以让用户不会每访问一个页面就弹出一次。

下载代码不被浏览器拦截的弹出窗口js代码.rar

Tags: 弹出窗口

简单添加ecshop栏目或者文章权限

之前的ecshop项目中客户要求某篇文章需要相应用户登录之后方能查看,那么根据这个需求,我们只需要在文章页面增加权限判断。

作为新时代的懒人,自然先简单搜索了一下google,得到一篇《限制某等级访问某栏目的文章》

具体代码可以到上面那篇文章中得到,我的需求与参考资料不同之处是:

  1. 只需要限制某篇文章的权限
  2. 提示信息中引导用户去注册登录

那么最终我修改的代码如下:

 

/*------------------------------------------------------ */

//-- 判断权限才能访问某栏目or某文章

/*------------------------------------------------------ */

$cat_id = $db->getOne("SELECT cat_id FROM " . $ecs->table('article') . " WHERE article_id = '".intval($_REQUEST['id'])."' ");

  if (($article_id == 36) && $_SESSION['user_rank'] <= 1)

   {

    show_message("对不起,您无权限浏览,请登录后下载数据包!", "点击登录", 'user.php');

   }

 

如果你需要修改栏目的权限,那只要把$article_id改为$cat_id并增加具体的栏目id值。当然,你也可以双重判断,无非就是$article_id与$cat_id之间多个&&或者or而已。具体请自行发挥……

网上看到有人将这个功能更加完善化了,后台操作文章的页面里就有权限设置。本项目中不需要,下次有空完善地写一下好了。

 

Tags: ecshop, 权限

完善ecshop自动收缩浮动在线客服代码实现自动更新

在某项目中客户要求实现右侧漂浮的客服内的信息能够自动更新(后台更新此处也更新),从网上下载的代码,具体见:http://bbs.ecshop.com/thread-92214-1-1.html

然而这个代码有个致命的缺点,因为悬浮代码是调用JS文件,不适用ecshop里的php-dwt-lbi模式,只能手工修改客服代码,这对于普通用户是非常不便的。

我参考了代码,发现其实可以变通解决这个问题,下面以“客服2_UTF_GBK版本”为例:

1、打开ServiceQQ.js文件将document.write输出的语句全部删除保存

2、打开page_footer.lbi,在最末位加入如下代码: 

<link href="QQkefu/images/qq.css" rel="stylesheet" type="text/css" />

<div class='QQbox' id='divQQbox' >

<div class='Qlist' id='divOnline' onmouseout='hideMsgBox(event);' style='display : none;'>

<div class='t'></div>

<div class='con'>

<h2>在线客服</h2>

<ul>

<!-- QQ 号码 {foreach from=$qq item=im} -->

      <li class=odd><!-- {if $im} -->

      <a href="http://wpa.qq.com/msgrd?V=1&amp;Uin={$im}&amp;Site={$shop_name}&amp;Menu=yes" target="_blank"> <img src="http://wpa.qq.com/pa?p=1:{$im}:4" height="16" border="0" alt="QQ" /> {$im}</a></li>

      <!-- {/if} -->

<!-- {/foreach} 结束QQ号码 -->

      <!-- 淘宝旺旺 {foreach from=$ww item=im} -->

      <!-- {if $im} -->

      <li><a href="http://amos1.taobao.com/msg.ww?v=2&uid={$im|escape:u8_url}&s=2" target="_blank"> <img src="http://amos1.taobao.com/online.ww?v=2&uid={$im|escape:u8_url}&s=2" width="16" height="16" 

border="0" alt="淘宝旺旺" />{$im}</a></li>

      <!-- {/if} -->

      <!--{/foreach} 结束淘宝旺旺 -->

<!-- 客服电话{if $service_phone} -->

      <li style="color:red;font-size:12px;">Tel:{$service_phone}</li>

<!-- 结束客服电话{/if} -->

</ul>

</div>

<div class='b'></div>

</div>

<div id='divMenu' onmouseover='OnlineOver();'><img src='/QQkefu/images/qq_1.png' class='press' alt='QQ客服热线'></div>

</div>

<script language='javascript' src='/QQkefu/ServiceQQ.js' type='text/javascript' charset='gbk'></script>

也就是把原来需要贴在page_footer.lbi末尾的调用代码中的客服信息直接写入lbi

3、搞定。

Tags: ecshop, 浮动, 客服

解决ecshop首页乱码问题

今天将本地已经制作好的ecshop系统上传到空间上,并且通过之前phpmysql导出的数据库文件用服务器上的phpmysql导入,结果发现首页乱码,其他网页正常显示。

解决方法:进入网站后台,点击“清除缓存”即可。如果出现其它错误提示,一般可能会提示某个表不存在,那么只要用phpmysql建立该表即可。

附加ecshop的网站迁移过程:

  1. 先打包本地的程序,然后传到空间上解压
  2. 用phpmysql备份数据库为sql文件,然后用网站上的phpmysql导入
  3. 修改ecshop的数据库配置文件信息
  4. 进入网站调试

Tags: ecshop, 乱码

破解理想家园企业建站CMS系统v1.5版权

这篇日志被加密了,请输入密码后查看。