linux(CentOS) 下mysql与代码自动备份与清理

一.备份数据库:

 

1.创建并编辑文件 /usr/sbin/bakmysql,命令:

vi /usr/sbin/bakmysql 

内容如下:

1 db_user="root"

2 db_passwd="root"

3 db_name="db_test"

4 # the directory for story your backupfile.you shall change this dir

5backup_dir="/usr/software/backup/mysqlbackup"

6 # date format for backup file (dd-mm-yyyy)

7 time="$(date+"%Y%m%d%H%M%S")"    

8

9 mysqldump -u$db_user  -p$db_passwd $db_name  >"$backup_dir/$db_name"_"$time.sql"

 注意 -p  $db_passwd之间没有空格,不然$db_passwd会被当做参数[数据库名]来解析

mysqldump可以写绝对路径:

/www/wdlinux/mysql-5.5.54/bin/mysqldump

 2.修改文件bakmysql属性,使其可执行;

chmod +x /usr/sbin/bakmysql

 

3.创建定时任务

crontab –e 

#进入编辑界面,内容如下

00 23 * * * ./usr/sbin/bakmysql

 

#上一行命令的 " . " 不要也可

# 00 23 是每天23:00执行 bakmysql 文件,备份数据库在路径 /usr/software/backup/mysqlbackup

 

二.备份代码:

1:创建并编辑文件 /usr/sbin/bakdaima,命令:

time="$(date+"%Y%m%d")"

zip -r/usr/software/backup/daimabackup/$time.zip /www/web/default

备注:zip需要安装: yum install -y unzip zip

 

 2.修改文件bakdaima属性,使其可执行;

chmod +x /usr/sbin/bakdaima

 

3.创建定时任务

crontab –e 

#进入编辑界面,内容如下

00 00 * * * /usr/sbin/bakdaima

 

三.定期清理备份数据:

1./usr/software/backup/mysqlbackup/delmysql.php

$dir ="/usr/software/backup/mysqlbackup"; //当前目录

$read_all_dir =read_all_dir($dir);

//var_dump($read_all_dir);

 function read_all_dir ($dir)

    {

        $result = array();

        $handle = opendir($dir);

            $showtime=date("Ymd",strtotime("-30 day"));

 

        if ( $handle )

        {

            while ( ( $file = readdir ( $handle) ) !== false )

            {

                        $cur_path = $dir .DIRECTORY_SEPARATOR . $file;

                        if($file<$showtime){

                                     $result = @unlink ($cur_path);

                            }

                $result['file'][] = $cur_path;

            }

 

        closedir($handle);

        }

        return $result;

    }

     

?>

 

2.创建定时任务

crontab –e 

#进入编辑界面,内容如下

00 03 * * *

/www/wdlinux/php/bin/php /usr/software/backup/mysqlbackup/delmysql.php


. 定期清理备份代码:

 

1/usr/software/backup/mysqlbackup/delcode.php

$dir = "/usr/software/backup/daimabackup"; //当前目录

$read_all_dir = read_all_dir($dir);

//var_dump($read_all_dir);

 function read_all_dir ($dir)

    {

        $result = array();

        $handle = opendir($dir);

           $showtime=date("Ymd",strtotime("-1 day"));

         //$showtime=$showtime.'020001';

        if ( $handle )

        {

            while ( ( $file =readdir ( $handle ) ) !== false )

            {

                    $cur_path = $dir. DIRECTORY_SEPARATOR . $file;

                     if($file<$showtime){

                                 $result = @unlink ($cur_path);

                           }

                $result['file'][] =$cur_path;

            }

 

        closedir($handle);

        }

        return $result;

    }

    

?>

 

2.创建定时任务

crontab –e 

#进入编辑界面,内容如下

00 02 * * *

/www/wdlinux/php/bin/php /usr/software/backup/mysqlbackup/delcode.php

 

你可能感兴趣的:(服务器)