ty9919 发表于 2018-8-21 09:25:22

shell,切换用户,执行指定,脚本

  某些情况下,比如oracle,必须切换到指定用户才能重启oracle。
  每次手动操作比较麻烦,可以写个脚本。
  自动输入密码的功能,需要用到expect
  先安装
  yum install -y expect
  编辑脚本
  vi aa.sh
  #!/usr/bin/expect
  set timeout 1
  spawn su root -c "/opt/1.sh"
  expect "password: "
  send "123456\r"
  interact
  exit
  备注:
  1. 第一行是#!/usr/bin/expect,而不是#!/bin/bash,这个需要特别注意。脚本里面不要写shell相关的命令否则执行报错。
  2. set timeout 1指定超时时间,如果不指定,需要等到12秒,才会执行-c 后面的脚本
  3. -c是指定切换用户之后,需要执行的命令。有多个命令,可以写在一个脚本里面。如果没有-c选项,那么切换用户之后,后续执行的命令是在当前用户执行的,而不是切换之后的用户。
  4. 123456\r 表示oracle密码是123456
  5. /opt/1.sh 是需要执行的脚本,里面写好了相关命令,保证shell有执行权限。

页: [1]
查看完整版本: shell,切换用户,执行指定,脚本