无人值守状态下让客户自己重启服务器

很多做美国服务器的公司,都是代理大型美国机房的服务器租用业务的。在日常的客户服务中,不可避免的涉及到要帮客户重启服务器的问题。根据笔者的经验,绝大部分美国机房的服务都是通过电子邮件来进行(也有少数提供在线重启面板),也就是如果客户要重启了,我们要发一封Reboot邮件到美国机房去。美国机房的服务一般都比较到位,确保24小时服务,他们一般会在10-30分钟内重启完毕。如果是白天我们这边有人值班到还好,万一是深夜或者是周末,没有人值班的时候,客户要重启服务器了,不停的打你电话催你,你是不是觉得非常尴尬呢?笔者几年前就碰过这样的情况,后来想起一个让客户自己发重启的办法。有些朋友已经知道了,其实很简单,只需借助一个在线发邮件的功能。首先,我们要明确,美国机房那边是根据Email地址来服务的,也就是只有你公司在那边登记的Email发邮件给他们,他们才会处理问题。客户用自己的邮箱发给他们,他们一般不会帮处理。我们的思路是:在服务器列表中做一个重启按钮,客户点击后执行一个专门重启的svr_reboot.asp文件,这个文件的功能就是用Jmail方式发送邮件到机房,并且记录下客户重启的时间。我用的是华众系统,下面给出具体代码,用其他管理系统的大家可以仿照更改。

在svr_idx.asp文件中增加重启按钮:
<script>
function rebootit(proid,proid2,proid3)
{
if (confirm(&ldquo;此功能相当于发送直接发送重启命令,一般15分钟-30分钟内会重启完毕,请不要多次点击重启。点击2小时内此功能将禁用。&rdquo;))
{location.href=&rdquo;/control/svr_mng/svr_reboot.asp?ssvrip=&rdquo;+proid+&rdquo;&snme=&rdquo;+proid2+&rdquo;&sprd=&rdquo;+proid3;
}
}
</script>
<input type=&rdquo;button&rdquo; name=&rdquo;ccreboot&rdquo; value=&rdquo;重启&rdquo; onclick=&rdquo;javascript:return rebootit(&lsquo;<%=rs(&ldquo;s_svrip&rdquo;)%>&rsquo;,'<%=rs(&ldquo;s_nme&rdquo;)%>&rsquo;,'<%=rs(&ldquo;s_prd&rdquo;)%>&rsquo;);&rdquo; <%if DateDiff(&ldquo;h&rdquo;,rs(&ldquo;s_rbttme&rdquo;),Now())<2 then response.write(&ldquo;disabled&rdquo;) end if%>> 上次重启时间<%=rs(&ldquo;s_rbttme&rdquo;)%> 离上次重启<%=DateDiff(&ldquo;h&rdquo;,rs(&ldquo;s_rbttme&rdquo;),Now())%>小时

新建svr_reboot.asp文件:
<!&ndash;#include virtual=&rdquo;/incs/config.asp&rdquo; &ndash;>
<%
chk_log_usr()
conn.open constr
Set msg = Server.CreateObject(&ldquo;JMail.Message&rdquo;)
msg.silent = true
msg.Logging = true
msg.MailServerUserName = &ldquo;aaa@yourdomain.com&rdquo; //你在机房登记的邮箱,推荐用企业邮箱
msg.MailServerPassword = &ldquo;yourpassword&rdquo; //邮箱密码
msg.From = &ldquo;aaa@yourdomain.com&rdquo; //邮箱名
msg.FromName = &ldquo;YourDomain&rdquo; //公司名
msg.AddRecipient &ldquo;support@usa.com&rdquo; //美国机房技术支持邮箱
msg.Subject = &ldquo;Reboot &ldquo;& SafeRequest(&ldquo;ssvrip&rdquo;) //邮件标题
mailbody=&rdquo;Please reboot the server &ldquo;&SafeRequest(&ldquo;ssvrip&rdquo;)&&rdquo;,thanks.&rdquo; //邮件内容
msg.Body = mailbody
sendok=msg.Send (&ldquo;smtp.yourdomain.com&rdquo;) //你的邮箱的SMTP服务器地址
set msg = nothing
//需要在数据库中新增s_rbttme字段记录重启时间,避免客户不停点击
If sendok Then
query1=&rdquo;update v_svrlst set s_rbttme=&rsquo;&rdquo;&Now()&&rdquo;&lsquo; where s_nme=&rsquo;&rdquo;&SafeRequest(&ldquo;snme&rdquo;)&&rdquo;&lsquo;&rdquo;
conn.execute query1,1,1
call okpage(&ldquo;/control/svr_mng/svr_idx.asp?snme=&rdquo;&SafeRequest(&ldquo;snme&rdquo;))
Else
call errorpage(-2,sendok&&rdquo;出现错误,请提交有问必答让我们手工重启。&rdquo;)
end if
//更新重启时间,进行后续处理
%>
<%
call cleardb
%>

通过这样两个简单的步骤,我们下次就可以告诉客户,让他自己到后台点击重启按钮,就可以很快重启服务器。这样既减少了我们的客户服务强度,也方便了客户的操作,实在是一个一举两得的好办法。

返回行业资讯