一个备份数据库的脚本

假设每个网站的目录都是www开头的,数据库的名字是域名,www开头,不带后缀的形式。比如 www.shelljiaocheng.com 的数据库名字是 www_shelljiaoben。

#/bin/bash

SITEDIR=/data/sitedir

cd SITEDIR

ans="yes"

for site in `ls -d www*`
do
    cdSITEDIR
    db_name=(echo "site" | cut -d '.' -f -2 | sed 's/\./_/g')
    echo db_name


    mysql -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='db_name';" | grep -q "db_name"

    if [? -eq 0 ]; then
        cd site
        mysqldumpdb_name > 20241029.sql
        if [ ? = 0 ]; then
            echodb_name 备份成功
        else
            echo db_name 备份失败
        fi
    else
        echo "数据库db_name 不存在。"
        echo db_name >> ~/tmp.txt
        ans=db_name
    fi

done

echo "\ans =ans"
cd ~