一个备份数据库的脚本

假设每个网站的目录都是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 ~

使用shell 快速 ping 局域网内那些ip地址是通的

#!/bin/bash

IP_HEAD='192.168.1.'

> ans.txt

ts=0
for i in {1..254}
do
    {
        ip=IP_HEADi
        #echo ip

        n=`ping -i 0.01 -c 3ip | grep 'trans' | grep -oP '\d*\s(?=rece)'`

        echo nip >> ans.txt

    }&
done

i=0
while true
do
    sleep 1
    let i++

    # 最多执行100秒
    if (( i>=100)); then
        break;
    fi

    n=`cat ans.txt | wc -l`
    echo "i: 完成n 条, 共计 254 条"

    if (( n == 254 )); then
        break;
    fi
done


echo -e "--- \nping 同的地址有"
cat ans.txt | grep -oP '(?<=[1-9]\s).*' | sort -n -k 4 -t .