1.数据库备份
执行 db_dump.sh westos( 数据库密码 )
要求:脚本执行后会备份数据库中的所有库到 /mnt/mysqldump 目录中;备份文件名称为 “库名称 .sql” 当此文件存在时报错并询问动作,输入“ S” 跳过备份,当输入“ B" 时备份“库名称 .sql” 文件为“库名称 _backup.sql”, 当输入“ O” 时,覆盖源文件。
#!/bin/bash
if [ ! -e "/var/lib/mysql/mysql.sock" ]
then
echo "Error: Mysql is not running"
exit 1
elif [ -z "$1" ]
then
echo "Error: Please show db password following $0"
exit 1
fi
mysql -uroot -p$1 -e "show databases;" &> /dev/null
if [ "$?" -ne "0" ]
then
echo "Error: Wrong password for db!!"
exit 1
fi
[ -e "/mnt/mysqldump" ]||{
mkdir -p /mnt/mysqldump
}
All_DB=`mysql -uroot -pwestos -NE -e "SHOW DATABASES;" | sed '/^*/d;/schema$/d'`
Action_Choose()
{
read -p "Please input your action: " ACTION
case $ACTION in
S|s|Skip|skip)
;;
B|b|Backup|backup)
mv /mnt/mysqldump/${DBNAME}.sql /mnt/mysqldump/${DBNAME}_backup.sql
mysqldump -uroot -p$1 $DBNAME > /mnt/mysqldump/${DBNAME}.sql
;;
O|o|overwrite|Overwrite)
mysqldump -uroot -p$1 $DBNAME > /mnt/mysqldump/${DBNAME}.sql
;;
*)
echo "Error: Wrong action please input s|o|b|"
Action_Choose
esac
}
for DBNAME in $All_DB
do
if [ -e "/mnt/mysqldump/${DBNAME}.sql" ]
then
echo "$DBNAME's backupfile is exist!!"
echo "You can choose your action"
echo "[S]kip [B]ackup [O]verwrite"
Action_Choose $1
else
mysqldump -uroot -p$1 $DBNAME > /mnt/mysqldump/${DBNAME}.sql
echo "$DBNAME is backup in /mnt/mysqldump/${DBNAME}.sql"
fi
done
2.自动部署论坛
#!/bin/bash
echo "It's installing softwares ..."
yum install php php-mysql mariadb-server httpd expect -y &> /dev/null
echo "Installation is over "
sed '/\[mysql\]/askip-networking=1' /etc/my.cnf -i /etc/my.cnf
systemctl start mariadb httpd
systemctl stop firewalld
echo "configure services..."
mysql_secure_installation &> /dev/null <<EOF
y
westos
westos
y
y
y
y
EOF
Download()
{
/usr/bin/expect <<-EOF
spawn scp [email protected]:/home/kiosk/Downloads/Discuz_X3.2_SC_UTF8.zip .
expect {
"*password:" { send "westos\r"}
}
expect eof
EOF
}
cd /var/www/html
Download
unzip Discuz_X3.2_SC_UTF8.zip &> /dev/null
chmod 777 /var/www/html/upload -R
firefox http://172.25.60.11/upload
注意:selinux=premissive
3.自动登陆脚本
#!/bin/bash
Auto_Ssh()
/usr/bin/expect <<EOF
spawn ssh root@$1 hostname
"yes/no" { send "westos\r" }
}
expect eof
EOF
}
for IP in {1..5}
do
ping -c1 -w1 172.25.254.$IP &> /dev/null
if [ "$?" -eq "0"]
then
echo "172.25.254.$IP `Auto_Ssh 172.25.254.$IP | tail -n 1 `"
fi
done
4.排序问题
方法1:
方法2: