linux 备份数据库与网站文件详解

例1,手动备份数据库与网站文件

 代码如下 复制代码

#!/bin/sh
# 文 件 名: rptsmain.sh
# 版    权: Copyright (shell) 2007-2007 
# 版 本 号: V1.0
# 功能描述:  数据备份
# 创 建 人: xxxxx
# 日    期: 2007/10/26
# 修 改 人:xxxxxxx
# 日    期: 2007/10/26

#程序开始

TODAY=`date "+%Y%m%d"`
WORKDATE=$TODAY
BACKDIR='/databak/'

tput init
clear
while :
do
tput clear

echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo "
                                   数据备份程序 V1.0
           
                                   Copyright (shell) 
    
  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  ┃                                                      ┃
  ┃                 1.     开始备份数据                  ┃
  ┃                                                      ┃
  ┃                 2.     备份数据写入磁带              ┃
  ┃                                                      ┃
  ┃             ----------------------------------       ┃
  ┃                                                      ┃
  ┃                 0.     退出系统                      ┃
  ┃                                                      ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
 
                            请选择[  ] "

read choice
 case $choice in
  1):
   clear
  
   echo "开始BCP数据库数据..."
   DATABASEDIR=$BACKDIR/database
   if [ -d $DATABASEDIR ]; then
    rm -rf $DATABASEDIR/*
   else   
    mkdir $DATABASEDIR
   fi
  
   #备份webdb数据库
   mkdir $DATABASEDIR/webdb
   total=`cat webdb.table|wc -l`   
   current=0                   
   for table in `cat webdb.table`
    do 
     current=$current+1 
     /sybase/OCS-12_5/bin/bcp webdb..$table out

$DATABASEDIR/aadb/$table.bcp -Usa -Ppwd -SServer -Jiso_1 -n -T409600
    done
   
   #备份abcdb数据库
   mkdir $DATABASEDIR/abcdb
   total=`cat abcdb.table|wc -l`   
   current=0                   
   for table in `cat abcdb.table`
    do 
     current=$current+1 
     /sybase/OCS-12_5/bin/bcp abcdb..$table out

$DATABASEDIR/bbdb/$table.bcp -Usa -Ppwd -SServer -Jiso_1 -n -T409600
    done
  
   echo "开始打包压缩数据库备份数据..."
   cd $BACKDIR
   tar uvf database-$WORKDATE.tar database/*
  
   echo "正在删除临时文件..."
   rm -rf $DATABASEDIR
  
  
  
   echo "开始打包压缩数据文件..."  
   echo "(1)开始打包Tomcat-ABC网站数据文件..."
   SOuRCEDIR='/aaaa/uploads'
   cd $BACKDIR
   #tar czf abc-files-$WORKDATE.tar.gz $SOuRCEDIR/ISO/*
  
   echo "(2)开始打包Websphere经管网数据文件..."
   cd $BACKDIR
   #tar czf web-files-$WORKDATE.tar.gz /upload/images/807/*
  
   echo "数据备份完成,按任意键返回..."
   cd $HOME
   read return
   ;;
  2):
   ;;
  0):
   break
   ;;
  esac
  done

例2,自动定时备份数据库

 代码如下 复制代码

#!/bin/bash 
#Setting 
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式 
#默认情况下备份方式是mysqldump,还可以是mysqldump,mysqldotcopy,如果注释掉第
#18行,则默认以tag的方式备份
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz 
DBName=mysql
DBUser=root
DBPasswd=123456
BackupPath=/home/wang/www/backup/mysql/mysqlbackup
LogFile=/home/wang/www/backup/mysql/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End

NewFile="$BackupPath"db$(date +%y%m%d).tgz 
DumpFile="$BackupPath"db$(date +%y%m%d) 
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz 
echo "-------------------------------------------" >> $LogFile 
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile 
echo "--------------------------" >> $LogFile 
#Delete Old File
if [ -f $OldFile ] 
then 
   rm -f $OldFile >> $LogFile 2>&1 
   echo "[$OldFile]Delete Old File Success!" >> $LogFile 
else 
   echo "[$OldFile]No Old Backup File!" >> $LogFile 
fi 
if [ -f $NewFile ] 
then 
   echo "[$NewFile]The Backup File is exists,Can’t Backup!" >> $LogFile 
else 
   case $BackupMethod in 
   mysqldump*)
      if [ -z $DBPasswd ]
      then 
         mysqldump -u $DBUser --opt $DBName > $DumpFile 
      else 
         mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile 
      fi 
      tar czvf $NewFile $DumpFile >> $LogFile 2>&1 
      echo "[$NewFile]Backup Success!" >> $LogFile 
      rm -rf $DumpFile 
      ;; 
   mysqlhotcopy*) 
      rm -rf $DumpFile 
      mkdir $DumpFile 
      if [ -z $DBPasswd ] 
      then 
         mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1 
      else 
         mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1 
      fi 
      tar czvf $NewFile $DumpFile >> $LogFile 2>&1 
      echo "[$NewFile]Backup Success!" >> $LogFile 
      rm -rf $DumpFile 
      ;; 
   *) 
      /etc/init.d/mysqld stop >/dev/null 2>&1 
      tar czvf $NewFile $DBPath >> $LogFile 2>&1 
      /etc/init.d/mysqld start >/dev/null 2>&1 
      echo "[$NewFile]Backup Success!" >> $LogFile 
      ;; 
   esac
fi
echo "-------------------------------------------"
echo

#lftp -f lftp.sh 如果有FTP可同时上传ftp中。

 再利用crontab命令生成/var/spool/cron/root 文件
 

crontab –e   (就会打开一个编辑窗口,第一行会有内容格式的提示,在此输入命令)

 m h  dom mon dow   command  (具体意义表示:分钟 小时 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command))

如: 10 02 * * * /home/backup/autobackupmysql.sh  (表示零晨二点十分执行备份脚本)

例3,我们自己的一个Linux VPS 自动备份数据到远程主机FTP

如果系统上没有ftp命令,先执行yum install -y ftp进行安装。
需要先建立/home/backup/目录,该目录不能用作其他用途。

 代码如下 复制代码

#!/bin/bash

#FTP信息
FTP_IP=
FTP_USER=
FTP_PASS=

#备份数据库
/etc/init.d/mysqld stop
MySQLBakName=MySQL_$(date +”%Y%m%d”).tar.gz
tar zcf /home/backup/$MySQLBakName /var/lib/mysql
/etc/init.d/mysqld start

#备份网站
WebBakName=Web_$(date +%Y%m%d).tar
tar cf /home/backup/$WebBakName /home/www

#操作FTP
OldMySQL=MySQL_$(date -d -1day +”%Y%m%d”).tar.gz
OldWeb=Web_$(date -d -1day +”%Y%m%d”).tar

cd /home/backup/
/usr/bin/ftp -v -n $FTP_IP << EOF
user $FTP_USER $FTP_PASS
type binary
put $MySQLBakName
put $WebBakName
delete $OldMySQL
delete $OldWeb
bye
EOF

rm -rf /home/backup/*.tar*

时间: 2024-10-21 20:56:17

linux 备份数据库与网站文件详解的相关文章

linux基础命令(31) etcgroup文件详解

Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户 组管理时相关的文件.linux /etc/group文件是有关于系统管理员对用户和用户组管理的文件,linux用户组的所有信息都存放在 /etc/group文件中.具有某种共同特征的用户集合起来就是用户组(Group).用户组(Group)配置文件主要有 /etc/group 和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件. 将用

mysql定时备份数据库的shell脚本详解

1. vi /home/zhangy/database_bak.sh 2. 3. #!/bin/sh 4. # File: /home/zhangy/database_bak.sh 5. # Database info bakupmysql TANK 2009/11/04 6. DB_USER="root" #用户名 7. DB_PASS="********" #密码 8. DB_NAME="myblog" #要备份的数据名 9. 10. # O

linux系统下hosts文件详解及配置_linux shell

hosts文件 hosts -- the static table lookup for host name(主机名查询静态表). hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件,以ascii格式保存在/etc/目录下.hosts文件包含了ip地址与主机名之间的映射,还包括主机的别名.在没有域名解析服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用dns服务程序来解决.通过可以将常用的域名和ip地址映射加入到hosts文件中

MySQL数据备份之mysqldump的使用详解_Mysql

mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump file] 上述命令将指定数据库备份到某dump文件(转储文件)中,比如: mysqldump -uroot -p123 test > test.dump 生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句. B. --opt 如果加上--opt参数则生成的du

MySQL日志文件详解

  这篇文章主要介绍了MySQL日志文件详解,本文分别讲解了错误日志.二进制日志.通用查询日志.慢查询日志.Innodb的在线redo日志.更新日志等日志类型和作用介绍,需要的朋友可以参考下 概述 日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等.本文主要描述MySQL的各种日志文件. MySQL日志文件

WordPress数据库表及字段详解

今天熊哥在朋友的博客看到关于wordpress数据库的介绍,感觉很有用,相信对同样在使用wordpress的同学也很有用,所以就拿过来分享一下.希望对自己和大家有所帮助. [废话] 记得刚接触网站时对数据库一点概念也没有,那时公司网站要换服务器,于是就单纯的转移了网站文件,结果可想而知.一翻折腾,在糊里糊涂中按网上的教程终于搞定,享受成就感时也第一次接触了数据库.那时感觉数据库高端深奥遥远,从没想过自己以后会跟数据库再有交集:而后,自己成为一名数据库工程师时也没想起当年数据库曾给自己带来困扰.现

Linux下Android ADB驱动安装详解

Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比较多,本人使用的Ubuntu系统好多厂商的Android手机都无法正确的识别,经过一番折腾,和查阅SDK,现把Linux下ADB驱动配置的方法和当中会遇到的相关问题的解决方法整理出来贡献给大家. Linux下使用手机USB调试模式连接ADB进行Android程序的调试,配置驱动没有Windows来的直观. 具体步骤 首先确认手机连接上电脑,lsusb查看下设备记录. matthew@matthew-1230-laptop

linux sort,uniq,cut,wc命令详解

linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 [root@www ~]# sort [-fbMnrtuk] [file or stdin] 选项与参数: -f :忽略大小写的差异,例如 A 与 a 视为编码相同: -b :忽略最前面的空格符部分: -M :以月份的名字来排序,例如 JAN,

安全狗云备份 数据库、网站备份好帮手

近日,安全狗云备份正式上线并试运行,主要为广大服务器与网站管理者提供网站文件.数据库文件.配置文件等重要数据的备份及备份还原功能,同时,安全狗云备份还支持本地与服务器间文件中转.服务器间备份文件共享等的功能. 安全狗云备份采用客户端独立运行与云端统一管理相结合,客户端负责单台服务器文件备份及管理,云端负责所有服务器备份文件管理.云备份客户端安装在在服务器上,创建自动备份任务后,可以实现网站和数据库文件的自动备份,当有异常情况发生后,可右键点击进行一键还原.云备份web端可实现对所有服务器的备份文