• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    Linux: Shell脚本备份MySQL数据库

      in  独立服务器      Tags:  Shell脚本备份  

    Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行。我们也可以逐一敲入命令手动执行。如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了。

    我首先要在本文带给你的是完整脚本。后面会对该脚本做说明。我假定你已经知道shell scripting、 Mysqldumpcrontab。

    适用操作系统:任何linux或UNIX。

    主脚本(用于备份mysql数据库):

    该Shell脚本可以自动备份数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密码以及数据库名即可。我备份数据库使用的是mysqlump 命令。后面会对每行脚本命令进行说明。

    1. 分别建立目录“backups”和“history”

    1mkdir -p /var/www/html/var/backups/history

    2. 现在使用你喜欢的编辑软件创建并编辑“backup.sh”

    这里我用的是 vi

    1vi /var/www/html/var/backups/backup.sh

    现在把以下几行命令输入到 backup.sh 文件中:

    01#!bin/bash
    02
    03BACKUP=/var/www/html/var/backups
    04USERNAME=root
    05PASSWORD='root'
    06DBNAME=ikeepstudying
    07
    08cd ${BACKUP}
    09
    10echo "----You are In Backup Directory"
    11sudo mv *.sql ${BACKUP}/history/
    12sudo rm -rf *.sql
    13echo "----Old Databases are Moved to history folder"
    14Now=$(date +"%Y-%m-%d--%H:%M:%S")
    15File=backup-$Now.sql
    16Mysqldump --user=${USERNAME} --password=${PASSWORD} --default-character-set=utf8 --single-transaction ${DBNAME} > $File
    17echo "----Your Database Backup Successfully Completed"

    脚本说明:

    切记,在第8行命令中,在Mysqldump命令后要输入自己的数据库用户名、密码及数据库名。

    执行该脚本,首先会进入 /var/www/html/var/backups 目录,然后该脚本会把原有的旧数据库备份移动到 /history 文件夹中,接着根据系统的日期及时间生成一个文件名,在最后 Mysqldump 命令会生成一个“.sql”格式的数据库备份文件。

    3. 设置 backup.sh 脚本文件的可执行许可

    1chmod +x /var/www/html/var/backups/backup.sh

    4. 执行脚本

    其他版本:

    First create a script file and give this file executable permission.

    1# cd /etc/cron.daily/
    2# touch /etc/cron.daily/dbbackup-daily.sh
    3# chmod 755 /etc/cron.daily/dbbackup-daily.sh
    4# vi /etc/cron.daily/dbbackup-daily.sh

    Then copy following lines into file with Shift+Ins

    01#!/bin/sh
    02now="$(date +'%d_%m_%Y_%H_%M_%S')"
    03filename="db_backup_$now".gz
    04backupfolder="/var/www/vhosts/example.com/httpdocs/backups"
    05fullpathbackupfile="$backupfolder/$filename"
    06logfile="$backupfolder/"backup_log_"$(date +'%Y_%m')".txt
    07echo "mysqldump started at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
    08mysqldump --user=mydbuser --password=mypass --default-character-set=utf8 mydatabase | gzip >"$fullpathbackupfile"
    09echo "mysqldump finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
    10chown myuser "$fullpathbackupfile"
    11chown myuser "$logfile"
    12echo "file permission changed" >> "$logfile"
    13find "$backupfolder" -name db_backup_* -mtime +8 -exec rm {} ;
    14echo "old files deleted" >> "$logfile"
    15echo "operation finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
    16echo "*****************" >> "$logfile"
    17exit 0


    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开