好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Linux系统定时备份数据库和网站例子

下面本站长给大家整理一些关于在linux系统中对于mysql数据库与网站文件备份的命令,这些方法非常的好,希望对各位会带来帮助.

首先创建一个备份文件,代码如下:

mkdir /datalin/data

vi /datalin/databak 写下下面的内容,停止数据库,lnmp环境,说明不要写进去:

  • /etc/init.d/mysql stop 
  • tar zcvf /datalin/data/bakmysql.tar.gz /datalin/mysql 
  • //启动数据库 (说明不要写进去)  
  • /etc/init.d/mysql start) 

    括号里面的是以前的想法,貌似停止mysql服务不好,听了朋友,友链中的技术小强,的想法后,这样做:

    mysqldump -uroot -p密码 数据库名 > /datalin/mysql/名称.sql -u后面没有空格 -p后面没有空格

    这个命令是导出命令 如果以后想导入mysql 则用 mysql -uroot -p密码 库名 < 库备份.sql,代码如下:

    tar zcvf /datalin/data/bakwwwroot.tar.gz /datalin/wwwroot

    如果需要每次保存备份文件需要创建文件的时候用date函数来为文件夹命名,修改文件属性,使其可执行,代码如下:

  • chmod +x /datalin/databak 
  •  
  • --修改/etc/crontab  
  •  
  • vi /etc/crontab --写下  
  •  
  • 00 23 * * * root /datalin/databak 

    意思是:每天23:00 执行备份

    重启crond:/etc/rc.d/init.d/crond restart

    OK了,每天在/datalin/data 就可以看到备份的文件了,你直接下载就可以.

    利用mysqldump方法 ,代码如下:

  • #!/bin/sh 
  •           
  • # 定义变量,请根据具体情况修改 
  • # 定义脚本目录 
  • scriptsDir=`pwd` 
  •           
  • # 定义用于备份数据库的用户名和密码 
  • user=root 
  • userPWD=123456 
  •           
  • # 定义备份数据库名称 
  • dbNames=(jishubu xingzhengbu shichangbu) 
  •           
  • # 定义备份目录 
  • dataBackupDir=/home/backup 
  •           
  • # 定义备份日志文件 
  • logFile=$dataBackupDir /log/mysqlbackup.log 
  •           
  • DATE =` date  -I` 
  • DATE =` date  -d  "now"  +%Y%m%d` 
  •           
  • echo  ` date  -d  "now"   "+%Y-%m-%d %H:%M:%S" ` >  $eMailFile  
  •           
  • for  dbName in ${dbNames[*]} 
  • do  
  • # 定义备份文件名 
  • dumpFile=$dataBackupDir /db/ $dbName - $DATE .sql.gz 
  •           
  • # 使用mysqldump备份数据库,请根据具体情况设置参数 
  • /usr/local/mysql/bin/mysqldump -u$user  -p $userPWD   $dbName  | gzip >  $dumpFile  
  • if  [[ $? == 0 ]]; then 
  • echo   "DataBase Backup Success!"  >>  $eMailFile  
  • else  
  • echo   "DataBase Backup Fail!"  >>  $emailFile  
  • fi 
  •           
  • # 写日志文件 
  • echo   "================================"  >>  $logFile  
  • cat $eMailFile  >>  $logFile  
  • echo   $dumpFile  >>  $logFile  
  •           
  • done 
  •           
  •           
  • # ftp上传备份 
  • for  dbName in ${dbNames[*]} 
  • do  
  • file1=$dbName - $DATE .sql.gz 
  • //phpfensi.com  
  •           
  • ftp -v -n 127.0.0.1<<EOF 
  • user jishubu 123456 
  • bi 
  • cd mysql 
  • lcd $dataBackupDir /db 
  • mput $file1  
  • bye 
  • EOF 
  •           
  • done 

    本shell运行前请手动建立/home/backup/db /home/backup/log 目录,shell 运行前记得添加执行权限 chmod 777 databasebackup.sh

    修改改好后添加定时任务:

  • crontab -e 
  •  
  • 01 03 * * * /root/databasebackup.sh >>/home/backup/log/crontablog.txt
  •  

    查看更多关于Linux系统定时备份数据库和网站例子的详细内容...

  •   阅读:71次