</pre><div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;"><strong>cron上运行php命令,并备份数据库</strong></div><div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;">要在cron上运行php程序,需要在命令行中先找到php的运行位置,如/home/user/bin/php,管理员一般都知道自己的php安装位置,不知道也没关系,可以通过whereis php这个命令来查找php的安装位置。</div><div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;"><strong><em>/home/user/bin/php a.php</em></strong></div><div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;">这样我们就运行了a.php这个文件。但是要php执行备份数据库的命令还是不够的,我们知道备份数据的命令是mysqldump -u.....>mysql.sql形式的,并且是运行在命令行中的(当然还有其他方式,但这个最便捷),因此我们还需要在php文件中输出命令行命令,也就是system($cmd,$error)这个函数。</div><div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;">下面附上mysqldump.php的部分代码。</div><pre name="code" class="php"><?php
//数据库备份基类
class MysqlDump{
private $cmd;
public function __construct($dbUser,$dbPass,$dbName,$dest,$zip='gz')
{
$zip_util = array('gz'=>'gzip','bz2'=>'bzip2');
if(array_key_exists($zip,$zip_util))
{
$fname = $dbName . '.' . date('w') . '.sql.' .$zip;
$this->cmd = 'mysqldump -u' . $dbUser . ' -p' . $dbPass . ' ' . $dbName . '| ' .$zip_util[$zip] . '>' .$dest . '/' . $fname ;
}
else
{
$fname = $dbName . '.' . date('w') . '.sql';
$this->cmd = 'mysqldump -u' . $dbUser . ' -p' . $dbPass . ' ' . $dbName . '>' .$dest . '/' . $fname ;
}
}
public function backup()
{
system($this->cmd,$error);
if($error)
{
trigger_error('Backup faild: ' . $error);
}
}
}
cron上运行php命令,并备份数据库
最新推荐文章于 2024-04-29 16:45:07 发布