- 执行db.dump.sh westos(数据库密码)脚本执行后会备份数据库中的所有库到/mnt/mysqldump目录中备份文件名称为“库名称 .sql”当此文件存在时报错并询问动作输入“S”跳过备份,当输入“B”时备份“库名称.sq””文件为“库名称backup.sql” ,当输入“O”时,覆盖源文件
脚本内容如下:
#!/bin/bash Action() # 定义函数,进行操作指南 { read -p "Please input action like:[S]kip [B]ackup [O]verwrite " action action=`echo $action | tr 'A-Z' 'a-z'` } Action $1 Database=`mysql -uroot -p$1 -EN -e "show databases;"|grep -E "^\*|schema$" -v ` mkdir -p /mnt/sqldump/ [ -e "$database_name".sql ]&& Case $1 Case() # 定义函数,匹配操作 { case $action in s) # s 时不做任何操作 ;; b) # b 时,将文件备份为数据库名称bachup.sql for database_name in $Database do mysqldump -uroot -p$1 $database_name > /mnt/sqldump /${database_name}backup.sql done echo backup ;; o) # o 时覆盖原备份 for database_name in $Database do mysqldump -uroot -p$1 $database_name > /mnt/sqldump /${database_name}.sql [ "$?" -eq "0" ]&&{ echo -e "$database_name is backup." } done echo overwrite ;; exit) exit 0 ;; *) # 如果错误,提示正确输入 echo "Error:Please inout [S] [B] [O] or exit!!" Action $1 Case $1 esac } Case $1
执行如下:
- 执行 auto_ ssh.sh 172.25.254. 100 westos
172.25.151.250Ϊip
westos为密码
执行脚本后自动登陆172.25.151.250并保持登陆
#!/usr/bin/expect set timeout -1 # 设置时间,不退出 set "IP" [ lindex $argv 0 ] # 第一个参数为 IP set "PASS" [ lindex $argv 1 ] # 第二个参数为 PASS spawn ssh root@$IP # 执行 ssh 命令 expect { "yes/no" { send "yes\r";exp_continue } "password" { send "$PASS\r" } } interact # 登录后可执行操作
执行如下:
脚本内容:
执行结果:
- 检测教室中开启的所有主机,并抓取所有主机的值机名称和 ip 的对应列表,把列表保存在 /mnt/ip. host.list 文件中
#!/bin/bash Auto_Check() # 定义函数,进行自动连接主机 { /usr/bin/expect << EOF # 运用 expect 进行交互操作 set timeout 10 spawn ssh root@172.25.151.$IP hostname expect { "yes/no" { send "yes\r";exp_continue } "password" { send "westos\r" } } expect eof EOF } for IP in {240..250} # 定义访问主机号,并将信息保存 do ping -c1 -w1 172.25.151.$IP &> /dev/null && { Host_Name=`Auto_Check | grep -E "authenticity|fingerprint|connecting|password|Waring|spawn" -v` } echo 172.25.151.$IP $Host_Name >> /mnt/ip.host.list done
脚本内容:
执行如下:
- 执行脚本lamp.sh,脚本执行后部署好论坛,并设定apache的网络接口为8080
#!/bin/bash yum install httpd -y &>/dev/null && echo -e "\033[31mhttpd is installed\033[0m" ; # 安装 httpd 服务 yum install mariadb-server -y &>/dev/null && echo -e "\033[31mmariadb is installed\033[0m"; # 安装 mariadb 服务 yum install php-mysql -y &>/dev/null && echo -e "\033[31mphp-mysql is installed\033[0m"; systemctl start httpd &>/dev/null && echo -e "\033[31mhttpd is starting\033[0m"; # 启动 httpd 服务 sed "/^Listen/cListen 8080" -i /etc/httpd/conf/httpd.conf &>/dev/null && echo -e "\033[31mhttpd Listen is changed to 8080\033[0m"; # 修改 httpd 服务端口 systemctl start mariadb &>/dev/null && echo -e "\033[31mmariadb is starting\033[0m"; # 启动 mariadb 服务 firewall-cmd --permanent --add-service=http &>/dev/null; firewall-cmd --reload &>/dev/null && echo -e "\033[31mhttpd is permanent to through firewalld\033[0m"; # 让防火墙允许 httpd 服务 #进行论坛搭建 cp /root/Desktop/Discuz_X3.2_SC_UTF8.zip /var/www/html/; cd /var/www/html/; /usr/bin/expect <<EOF set timeout 10 spawn unzip Discuz_X3.2_SC_UTF8.zip expect { "changelog.txt" { send "A\r" } } EOF chmod 777 /var/www/html -R; firefox $1/upload;
执行如下:
文章来源: Shell 脚本实例