首页 > 系统 > Linux > 正文

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

2024-08-27 23:55:21
字体:
来源:转载
供稿:网友
  下面本站长给大家整理一些关于在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。
 

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表