一个简单的php脚本 备份用户home和对应数据库

使用方法:
./bk_user.php  mysql_user:mysql_pass username

#!/usr/bin/php -q
<?php
if (empty($argv[1]) || empty($argv[2])) exit("no args!\r\n");
$temp = explode(":", trim($argv[1]));
$user = trim($argv[2]);
if (!file_exists("/home/$user")) exit("/home/$user not found!\r\n");
$tempdir = "/tmp/{$user}_bak_temp";
@mkdir($tempdir);
$mysql_user = $temp[0];
$mysql_pass = $temp[1];
$m = @mysql_connect("localhost", $mysql_user, $mysql_pass) or die("wrong mysql paras!\r\n");
$r =mysql_list_dbs($m);
while ($rs = mysql_fetch_array($r)) {
 //echo $rs['Database'].'........................';
 //echo strpos($rs['Database'], $user).'//////////';
 if (strpos($rs['Database'], $user) === 0) {
 $db = $rs['Database'];
 $res = shell_exec("mysqldump -u{$mysql_user} -p{$mysql_pass} $db > {$tempdir}/{$db}.sql");
 }
}
shell_exec("tar zcvf {$tempdir}/{$user}_homedir.tar.gz /home/{$user} > /dev/null");
shell_exec("tar zcvf /home/{$user}_bak_".time().".tar.gz {$tempdir} > /dev/null");
shell_exec("rm -rf $tempdir > /dev/null");

发表评论 0

Your email address will not be published. Required fields are marked *