PHP备份progress数据库(PHP作shell用)
时间:2006-10-27
来源:互联网
第一次将PHP作shell用,纪念一下。
复制内容到剪贴板
#!/opt/lampp/bin/php -q
<?php
/**
* \文件名:backup.php
* 描述:用於erp�Y料�毂淼��浞�
* �S�o人�T:Waterfrog
* ��建日期:2006-10-17
*/
require("Mail.php");
$BKDIR="/backup/erp";
$BKDB=array("admapsh","disapsh","finapsh","humapsh","mfgapsh");
$DBDIR="/dbs/v9db";
$PROUTIL="/usr/bin/proutil";
$date=date("YmdH");
$LOGFILE="log.txt";
$fLog=fopen($LOGFILE,"a");
//判���浞菽夸�是否存在,如果不存在�K且�浞菽夸�有��的�S可�啵���建��目��,否�t�箦e.
if (! file_exists($BKDIR."/".$date) && is_writable($BKDIR))
{
mkdir($BKDIR."/".$date);
$curbakdir=$BKDIR."/".$date;
}
elseif (file_exists($BKDIR."/".$date) && is_dir($BKDIR."/".$date))
{
$curbakdir=$BKDIR."/".$date;
}
else
{
fputs($fLog,"Open or Create Directory ".$BKDIR."/".$date." Error!\n");
$backuperror=1;
$backuperrormsg.="打�_或��建".$BKDIR."/".$date."目��有�e�`\n";
}
//根��需要�浞莸��烀��Q,在�浞菽夸�下��建���斓��浞菽夸��K�Ρ磉M行�浞莨ぷ�
for ($i=0;$i<count($BKDB);$i++)
{
//如果不存在�浞菽夸�,��建��目��
if (! file_exists($curbakdir."/".$BKDB[$i]) && is_writable($curbakdir))
{
mkdir($curbakdir."/".$BKDB[$i]);
}
else
{
fputs($fLog,"Open or Create Directory ".$curbakdir."/".$BKDB[$i]." Error!\n");
$backuperror=1;
$backuperrormsg.="打�_或��建".$curbakdir."/".$$BKDB[$i]."目��有�e�`\n";
}
//�奈谋疚募�中�x取���浞��熘械乃�有表
if (! $fp=fopen($BKDB[$i],"r"))
{
fputs($fLog,"Open table file ".$BKDB[$i]." Error!\n");
$backuperror=1;
$backuperrormsg.="打�_�Y料表文件 ".$$BKDB[$i]." �r出�e\n";
}
//�v遍�Y料表文件,�K�ρY面的所有表�M行�浞�
while ($bktable=trim(fgets($fp)))
{
if ($bktable=="") //如果�榭招�,�^�m��圈
{ continue; }
unset($returnvalue);
//�Ρ磉M行�浞�
system( $PROUTIL." /dbs/v9db/".$BKDB[$i]." -C dump pub.".$bktable." ".$curbakdir."/".$BKDB[$i]."/ ",$returnvalue);
//echo $PROUTIL." /dbs/v9db/".$BKDB[$i]." -C dump pub.".$bktable." ".$curbakdir."/".$BKDB[$i]."/ \n";
if ($returnvalue) //如果�浞菔��。����浞菝�令行及相�P�Y����入到���抵�
{
$backuperror=1;
fputs($fLog,$PROUTIL." /dbs/v9db/".$BKDB[$i]." -C dump pub.".$bktable." ".$curbakdir."/".$BKDB[$i]."/ \n");
$backuperrormsg.=$PROUTIL." /dbs/v9db/".$BKDB[$i]." -C dump pub.".$bktable." ".$curbakdir."/".$BKDB[$i]."/ \n";
$backuperrormsg.="�浞� ".$BKDB[$i].".".$bktable." 表�r失��\n";
}
}
}
//��df�n拷入到�浞菽夸�,每次�Y料�旖Y��或升��後需重建df�n及表列表�n
` cp ./*apsh $BKDIR./$date `; //�⒈砹斜��n拷入�浞菽夸�
` cp ./*.df $BKDIR./$date `; //�①Y料�於��x�n拷入�浞菽夸�
//���浞菽夸��M行�嚎s
unset($returnvalue);
system("tar --remove-files -zcvf ".$BKDIR."/".$date.".tar.gz ".$BKDIR."/".$date , $returnvalue);
if ($returnvalue)
{
$backuperror=1;
fputs($fLog,"tar --remove-files -zcvf ".$BKDIR."/".$date.".tar.gz ".$BKDIR."/".$date."\n");
$backuperrormsg.="tar --remove-files -zcvf ".$BKDIR."/".$date.".tar.gz ".$BKDIR."/".$date."\n";
$backuperrormsg.="�嚎s ".$BKDIR."/".$date.".tar.gz �r出�e!!\n";
}
//�O置mail基本����
$conf['mail'] = array('host' => '192.168.7.112',
'auth' => true,
'username' => '�ぬ�',
'password' => '密�a'
);
$headers['From'] = '�l件人地址';
$headers['To'] = '我的�]箱,�e人的�]箱';
$headers['Subject'] = 'ERP�浞萏崾�';
$mail_object = &Mail::factory('smtp', $conf['mail']);
//
//如果�浞葸^程中存在�e�`�Y��,�⒊鲥e�Y���]件�omis所有人�T
if ($backuperror)
{
$headers['Subject'].= "--ERP Backup have troubles!!!";
$mail_res=$mail_object->send($headers['To'], $headers, $backuperrormsg);
}
else
{
$headers['Subject'].= "--ERP Backup success!!!";
$msg=$date." ERP backup success!!!";
$mail_res=$mail_object->send($headers['To'], $headers, $msg);
}
?>
代码:
#!/opt/lampp/bin/php -q
<?php
/**
* \文件名:backup.php
* 描述:用於erp�Y料�毂淼��浞�
* �S�o人�T:Waterfrog
* ��建日期:2006-10-17
*/
require("Mail.php");
$BKDIR="/backup/erp";
$BKDB=array("admapsh","disapsh","finapsh","humapsh","mfgapsh");
$DBDIR="/dbs/v9db";
$PROUTIL="/usr/bin/proutil";
$date=date("YmdH");
$LOGFILE="log.txt";
$fLog=fopen($LOGFILE,"a");
//判���浞菽夸�是否存在,如果不存在�K且�浞菽夸�有��的�S可�啵���建��目��,否�t�箦e.
if (! file_exists($BKDIR."/".$date) && is_writable($BKDIR))
{
mkdir($BKDIR."/".$date);
$curbakdir=$BKDIR."/".$date;
}
elseif (file_exists($BKDIR."/".$date) && is_dir($BKDIR."/".$date))
{
$curbakdir=$BKDIR."/".$date;
}
else
{
fputs($fLog,"Open or Create Directory ".$BKDIR."/".$date." Error!\n");
$backuperror=1;
$backuperrormsg.="打�_或��建".$BKDIR."/".$date."目��有�e�`\n";
}
//根��需要�浞莸��烀��Q,在�浞菽夸�下��建���斓��浞菽夸��K�Ρ磉M行�浞莨ぷ�
for ($i=0;$i<count($BKDB);$i++)
{
//如果不存在�浞菽夸�,��建��目��
if (! file_exists($curbakdir."/".$BKDB[$i]) && is_writable($curbakdir))
{
mkdir($curbakdir."/".$BKDB[$i]);
}
else
{
fputs($fLog,"Open or Create Directory ".$curbakdir."/".$BKDB[$i]." Error!\n");
$backuperror=1;
$backuperrormsg.="打�_或��建".$curbakdir."/".$$BKDB[$i]."目��有�e�`\n";
}
//�奈谋疚募�中�x取���浞��熘械乃�有表
if (! $fp=fopen($BKDB[$i],"r"))
{
fputs($fLog,"Open table file ".$BKDB[$i]." Error!\n");
$backuperror=1;
$backuperrormsg.="打�_�Y料表文件 ".$$BKDB[$i]." �r出�e\n";
}
//�v遍�Y料表文件,�K�ρY面的所有表�M行�浞�
while ($bktable=trim(fgets($fp)))
{
if ($bktable=="") //如果�榭招�,�^�m��圈
{ continue; }
unset($returnvalue);
//�Ρ磉M行�浞�
system( $PROUTIL." /dbs/v9db/".$BKDB[$i]." -C dump pub.".$bktable." ".$curbakdir."/".$BKDB[$i]."/ ",$returnvalue);
//echo $PROUTIL." /dbs/v9db/".$BKDB[$i]." -C dump pub.".$bktable." ".$curbakdir."/".$BKDB[$i]."/ \n";
if ($returnvalue) //如果�浞菔��。����浞菝�令行及相�P�Y����入到���抵�
{
$backuperror=1;
fputs($fLog,$PROUTIL." /dbs/v9db/".$BKDB[$i]." -C dump pub.".$bktable." ".$curbakdir."/".$BKDB[$i]."/ \n");
$backuperrormsg.=$PROUTIL." /dbs/v9db/".$BKDB[$i]." -C dump pub.".$bktable." ".$curbakdir."/".$BKDB[$i]."/ \n";
$backuperrormsg.="�浞� ".$BKDB[$i].".".$bktable." 表�r失��\n";
}
}
}
//��df�n拷入到�浞菽夸�,每次�Y料�旖Y��或升��後需重建df�n及表列表�n
` cp ./*apsh $BKDIR./$date `; //�⒈砹斜��n拷入�浞菽夸�
` cp ./*.df $BKDIR./$date `; //�①Y料�於��x�n拷入�浞菽夸�
//���浞菽夸��M行�嚎s
unset($returnvalue);
system("tar --remove-files -zcvf ".$BKDIR."/".$date.".tar.gz ".$BKDIR."/".$date , $returnvalue);
if ($returnvalue)
{
$backuperror=1;
fputs($fLog,"tar --remove-files -zcvf ".$BKDIR."/".$date.".tar.gz ".$BKDIR."/".$date."\n");
$backuperrormsg.="tar --remove-files -zcvf ".$BKDIR."/".$date.".tar.gz ".$BKDIR."/".$date."\n";
$backuperrormsg.="�嚎s ".$BKDIR."/".$date.".tar.gz �r出�e!!\n";
}
//�O置mail基本����
$conf['mail'] = array('host' => '192.168.7.112',
'auth' => true,
'username' => '�ぬ�',
'password' => '密�a'
);
$headers['From'] = '�l件人地址';
$headers['To'] = '我的�]箱,�e人的�]箱';
$headers['Subject'] = 'ERP�浞萏崾�';
$mail_object = &Mail::factory('smtp', $conf['mail']);
//
//如果�浞葸^程中存在�e�`�Y��,�⒊鲥e�Y���]件�omis所有人�T
if ($backuperror)
{
$headers['Subject'].= "--ERP Backup have troubles!!!";
$mail_res=$mail_object->send($headers['To'], $headers, $backuperrormsg);
}
else
{
$headers['Subject'].= "--ERP Backup success!!!";
$msg=$date." ERP backup success!!!";
$mail_res=$mail_object->send($headers['To'], $headers, $msg);
}
?>
作者: redflowflag 发布时间: 2006-10-26
我也用过,第一此别人告诉我可以这么用的时候感觉很神奇,哈哈
作者: Phzzy 发布时间: 2006-10-26
呵呵..
作者: szy_session1987 发布时间: 2006-10-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28