1.免交互自动化脚本 //SSH免交互登录方法
(1)expect免交互
sudo apt-get install expect
vi expect.sh //内容如下:
#!/usr/bin/expect
set ip 192.168.88.190
set user test
set pass "123456"
spawn ssh $user@$ip
expect "password:" {send "$pass\r"}
expect "$user@*" {send "df -h\r"}
expect "$user@*" {send "exit\r"}
expect eof
(2)sshpass免交互
sudo apt-get install sshpass
# 免密ssh远程
sshpass -p '123456' ssh -p 22 test@192.168.88.190
# 免密ssh远程,并执行shell语句
sshpass -p '123456' ssh -p 22 test@192.168.88.190 "ls -trl"
# 免密scp拉取文件到本地
sshpass -p '123456' scp -P 22 test@192.168.88.190:/opt/file.txt /tmp/
# 免密scp传输文件
sshpass -p '123456' scp -P 22 /tmp/file.txt test@192.168.88.190:/opt/
2.多终端开启
终端将一闪而过,为避免其一闪而过可以进行如下设置:
在terminal点右键,选择Profiles->Profile Preferences然后找到Title and Command,里面 有一项When command exits,后面选择为Hold the terminal open
例子:gnome-terminal --tab --title="test" -- bash -c --command="pwd.exec bash"
3.EOF用法(免交互输入) //输入文本ls -trl pwd
cat << EOF
ls -trl
pwd
EOF
4.脚本后台运行
nohup : 结果默认会输出到nohup.out;使用Ctrl + C发送SIGINT信号,程序关闭;关闭session发送SIGHUP信号,程序免疫
& : 结果会输出到终端; 使用Ctrl + C发送SIGINT信号,程序免疫; 关闭session发送SIGHUP信号,程序关闭
nohup & : 同时免疫SIGINT和SIGHUP信号