shell编程-mysql数据库全备份-which命令-$RANDOM随机数-while从文件读取数据

  • which命令:
    -https://www.cnblogs.com/huchong/p/9938426.html

在这里插入图片描述
https://www.cnblogs.com/300js/p/9133352.html
关于$RANDOM
https://www.cnblogs.com/gaoyuechen/p/8000810.html
在这里插入图片描述

shell脚本中怎么用从文件中逐行的读取数据

while read line #使用read命令循环读取文件内容,并将读取的文件内容赋值给变量line
do
let count++(count是你自己定义的变量)
echo "$count line&quot;done&lt;line&quot; done &lt;file #“done <filewhilefile”将整个while循环的标准输入指向文件file

shell脚本中如何写文件(覆盖,追加等等)

https://www.cnblogs.com/xiaojianblogs/p/6486902.html

文件备份脚本


# File Name: mysqldb.sh
# Author: Finley
# mail: [email protected]
# Create Time: Tue 20 Aug 2019 09:02:07 PM CST
#====================================================================================
#!/bin/bash
MYSQL=`which mysql`
MYSQLDUMP=`which mysqldump`
User=root
Pass=Finley
Backup_path=/data/backup
Base_path=/data/tmp
tmp_file=$Base_path/$RANDOM

#Create directory and file
if [ ! -d $Base_path ]
        then
        mkdir $Base_path
fi
if [ ! -d $Backup_path ]
        then
        mkdir $Backup_path
fi
touch $tmp_file
$MYSQL -u$User -p$Pass <<EOF >$tmp_file
show databases;
EOF

#search databases would be backup
exclude=("Database","information_schema","performance_schema","sys"."mysql")
declare -a databaselist
declare -i i=0

while read line 
do
        if [[ "${exclude[@]}" != *$line* ]]
        then
           let i++;
           databaselist[$i]=$line
        fi
done < $tmp_file
echo "将要备份的数据库为:${databaselist[@]}"

filename=`date +%F`
rd=$RANDOM
for name  in ${databaselist[@]}
        do
                file_path=$Backup_path/`date +%F`
                if [ ! -e $file_path ]
                    then
                       mkdir $file_path
                fi
                file="$file_path$name-$filename-$rd.gz"
                $MYSQLDUMP --opt $name -u$User -p$Pass | gzip > $file
        done
                                                                     56,1-8 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章