按月存档: 2011/10

CPanel自动备份教程

分类:网站技术日期:2011-10-31 - 20:39:05评论:5条作者:老谢

<?php
// PHP script to allow periodic cPanel backups automatically.
// Based on script posted by max.hedroom in cpanel.net forums
// This script contains passwords. KEEP ACCESS TO THIS FILE SECURE!
 
// ********* 下面项目需要设定 *********
 
// cPanel登录信息
$cpuser = "**"; // CPanel帐号
$cppass = "***"; // CPanel密码
$domain = "***"; // cPanel所在域名或IP
$skin = "x3"; // 正在使用的cPanel风格,默认"x3"。
 
 
/************** 备份目的地 ***************
"homedir" - 本地主目录
"ftp" - 远程FTP备份(主动模式)
"passiveftp" - 远程FTP备份(被动模式)
"scp" - 加密传输(需服务器支持)
****************************************/
$savedir = "ftp"; // 备份目的地,默认"homedir",即只做本地备份。
 
// FTP上传的信息(备份目的地为本地的,可不填)
 
$ftpuser = "***"; // FTP帐号
$ftppass = "***!"; // FTP密码
$ftphost = "***"; // FTP服务器IP
$ftpport = "21"; // FTP端口,默认21
$ftprdir = "/"; // 远程FTP目录,默认"/"
 
// 通知信息
$notifyemail = "**@gmail.com"; // 信息反馈邮件地址
 
// 安全模式
$secure = 1; // 0为标准http, 1为ssl(需要主机支持ssl)
 
// 设定值为1时会在排程记录中产生网页报告
$debug = 0;
 
// *********** 以下内容不要更改! *********
 
if ($secure) {
   $url = "ssl://".$domain;
   $port = 2083;
} else {
   $url = $domain;
   $port = 2082;
}
 
$socket = fsockopen($url,$port);
if (!$socket) { echo "Failed to open socket connection... Bailing out!\n"; exit; }
 
// Encode authentication string
$authstr = $cpuser.":".$cppass;
$pass = base64_encode($authstr);
 
$params = "dest=$savedir&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&port=$ftpport&rdir=$ftprdir&submit=Generate Backup";
 
// Make POST to cPanel
fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
fputs($socket,"Host: $domain\r\n");
fputs($socket,"Authorization: Basic $pass\r\n");
fputs($socket,"Connection: Close\r\n");
fputs($socket,"\r\n");
 
// Grab response even if we don't do anything with it.
while (!feof($socket)) {
   $response = fgets($socket,4096);
   if ($debug) echo $response;
}
 
fclose($socket);
 
?>

以上代码复制保存为: fullbackup.php文件,上传到public_html以外的目录

这个全局脚本包含cPanel的登录帐号和密码,为了安全考虑,需要将这个脚本放到public_html文件夹以外的文件夹中,比如:“/home/yourname/backup”,并设置该文件夹的权限为600。切记!

2.填写好相关信息,修改文件名为fullbackup.php
3.将上述脚本上传到“/home/yourdomain/beifen”目录。(没有可以新建beifen目录)
4.将beifen目录的权限改为600
5.打开cpanel面板的时钟守护作业(Cron Jobs)。

选择作业频率,在command栏输入

/usr/bin/php -q /home/yourname/backup/fullbackup.php

原文转自:http://www.medic-cn.com/2011/02/cpanel-automatic-backup-of-your-whole-station.html

Whmcs搬家小记

分类:网站技术日期:2011-10-27 - 9:26:51评论:17条作者:老谢

1.搬数据文件
2.搬数据库
3.whmcs提交工单申请更新授权
4.新服务器添加计划任务

php -q /home/***/public_html/***/***/cron.php
php -q /home/***/public_html/***/pipe/pop.php

5.搬家结束,测试中,第一搬whmcs,不知道还忘记什么没有搬

Discuz! X2访问后台UCenter info: MySQL Query Error

分类:网站技术日期:2011-10-25 - 21:11:19评论:8条作者:老谢

今天帮客户搬DZ论坛,数据库导入完了 修改完三个配置文件以后宣布搬家结束

后经客户反映提示数据库错误,开始检查,检查半天发现3个配置文件数据库信息已经修改正确,没发现问题

uc_server/data/config.inc.php
conf/config_global.php
conf/config_ucenter.php

经过搜索后,发现conf/config_ucenter.php有一处未修改

define(‘UC_DBTABLEPRE’,’`dbname`.pre_ucenter_’);

这一处修改后,问题解决,搬家结束

CPlus-T6-数组和函数 C++编程题15(判定十个整数是否相同-数组)

分类:程序设计日期:2011-10-13 - 22:17:03评论:22条作者:老谢

【问题描述】从键盘输入十个整数,编写程序验证这十个数是否互不相同,并得出结论YES或NO。例如:
输入:1 2 3 4 5 6 7 8 9 10 输出YES
输入:1 1 2 2 3 4 5 6 7 8 输出NO
【输入形式】十个整数
【输出形式】参见样例输出
【样例输入】1 2 3 4 5 6 7 8 9 10
【样例输出】YES
【样例输入】1 1 2 2 3 4 5 6 7 8
【样例输出】NO
【样例说明】
【评分标准】

#include<iostream>
#include<algorithm>
#include<vector>
 
using namespace std;
int main()
{
 vector <int> vls;
 int number=10,size,size2; 
for (int temp,i=0;i<number;i++)
  {
   cin>>temp;
   vls.push_back(temp);
}
size=vls.size();
sort(vls.begin(),vls.end());
vector <int>::iterator viter=unique(vls.begin(),vls.end()); 
vls.erase(viter,vls.end());
size2=vls.size();
if(size==size2)
   cout<<"YES";
  else
   cout<<"NO";
return 1;
}

CPlus-T5-流程控制

分类:程序设计日期:2011-10-09 - 20:58:57评论:14条作者:老谢

【问题描述】编写一个程序实现如下功能:计算1~100之间所有含5的数之和
【输入形式】
【输出形式】参见样例输出
【样例输入】
【样例输出】sum is 990
【样例说明】
【评分标准】

 
#include <iostream>  
using namespace std;
int main(int argc, char *argv[])
{
 int i,sum=0;
 for(i=0; i<=100; i++)
 {
  if(i%10==5 || i/10==5)
   {sum = sum+i;}
 }
 cout<<"sum is "<<sum;
 return 0;
}

【问题描述】编程打印用“偶数”构成的n行下三角三角形,行数n从键盘输入。
【输入形式】一个整数
【输出形式】参见样例
【样例输入】5
【样例输出】

2
4 6
8 10 12
14 16 18 20
22 24 26 28 30

【样例说明】
【评分标准】

 
#include<stdio.h>
using namespace std;
      int main()
          {
                int i,j,s=0,sum=0,n=0;
                    scanf("%d",&n);
                         for(i=1;i<=n;i++)
                               {
                                   if(i==1||i==2||i==3)
                                        printf(" ");
                                   s++;
                                   for(j=1;j<=s;j++)
                                   {
                                          sum=sum+2;
                                          printf("%d ",sum);
                                          if(j==s)printf("\n");
                                   }          
                               }
          }

【问题描述】验证尼科彻斯定理,即:任何一个整数n的立方都可以写成n个连续奇数的和。例如从键盘输入 4, 输出: 4*4*4==13+15+17+19
【输入形式】输入一个整数
【输出形式】参见样例输出
【样例输入】4
【样例输出】4*4*4==13+15+17+19
【样例说明】
【评分标准】

#include <iostream>
using namespace std;
int main()
{  
long int n,i,k,j,sum;
    scanf("%d",&n);
    printf("Enter n=");
       	k=n*n*n;
       	for(i=1;i<k/2;i+=2)
       	{  
        for(j=i,sum=0;sum<k; j+=2)
               sum+=j;
          	if(sum==k)
printf("%ld*%ld*%ld=%ld=form%ld to%ld\n",n,n,n,sum,i,j);
       	}
}

C++编程题7-分数分等级

分类:程序设计日期:2011-10-07 - 22:02:25评论:6条作者:老谢

【问题描述】写一个程序能从键盘上输入整数n以及n个分数的值,计算并输出这n个分数的平均值(保持小数点后1位)、总分、最高分、最低分,并按照以下的分级原则给这些分数定级。分级原则是:
  分数<60, E级;   60<=分数<70, D级;   70<=分数<80, C级;   80<=分数<90, B级;   90<=分数<=100, A级; 【输入形式】参照样例输入 【输出形式】参照样例输出 【样例输入】3 66 88 77 【样例输出】66:D;88:B;77:C;Avg:77,Sum:231,Max:88,Min:77 【样例说明】 【评分标准】

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int a,m,Max,Min=100,count=0;
	double Sum=0.0,Avg=0.0;
	cin>>a;
 
    while(1)
	{
		cin>>m;
		cout<<m;
 
			if(	m<60)
			    cout<<":E;"<<endl;
			else if((m>=60) && (m<70))
				cout<<":D;";
		    else if((m>=70) && (m<80))
			    cout<<":C;";
		    else if((m>=80) && (m<90))
			    cout<<":B;";
		    else
				cout<<":A;";
 
		        if(Max<m)
				Max=m;
		    	if(Min>m)
				Min=m;
 
			Sum=Sum+m;
 
			count++;
 
			if(count==a)
				break;
 
	}
 
	Avg=Sum/a;
	cout<<"Avg:"<<Avg<<",Sum:"<<Sum<<",Max:"<<Max<<",Min:"<<Min<<endl;
 
	return 0;	
}