Shell 脚本实例

匿名 (未验证) 提交于 2019-12-03 00:38:01
  • 执行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 脚本实例
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!