如何在脚本中执行scp时自动输入密码?

如何在脚本中执行scp时自动输入密码?,第1张

脚本如下:\x0d\\x0d\#!/usr/bin/expect -f\x0d\\x0d\set password 密码\x0d\\x0d\spawn scp 用户名@目标机器ip:拷贝文件的路径 存放本地文件的路径 \x0d\set timeout 300 \x0d\expect "用户名@目标机器ip's password:" #注意:这里的“用户名@目标机器ip” 跟上面的一致\x0d\set timeout 300 \x0d\send "$password\r"\x0d\set timeout 300 \x0d\send "exit\r"\x0d\\x0d\expect eof\x0d\\x0d\附:scp参数\x0d\-r:拷贝目录\x0d\-c:允许压缩\x0d\\x0d\一个完整的例子\x0d\\x0d\#!/usr/bin/expect -f\x0d\set password 123456\x0d\#download\x0d\spawn scp root@1921681218:/root/awmv /home/yangyz/\x0d\set timeout 300 \x0d\expect "root@1921681218's password:"\x0d\set timeout 300 \x0d\send "$password\r"\x0d\set timeout 300 \x0d\send "exit\r"\x0d\expect eof \x0d\\x0d\#upload\x0d\spawn scp /home/yangyz/abcsql root@1921681218:/root/testsql \x0d\set timeout 300 \x0d\expect "root@1921681218's password:"\x0d\set timeout 300 \x0d\send "$password\r"\x0d\set timeout 300 \x0d\send "exit\r"\x0d\expect eof

expect是自动交互程序,可以方便的在shell脚本中自动输入mysql的帐号密码
shell脚本如何自动输入mysql帐号密码
在deepin linux下默认已安装此程序,首先要获取expect安装程序的路径,可以通过which命令来获取。如果没有安装请自行安装。
shell脚本如何自动输入mysql帐号密码
接下来就是建立一个脚本文件,这里命名为tsh,然后用vim打开tsh,在里面编写如下图所示的代码。代码说明如下:
第一句:#!/usr/bin/expect就是在上面获取的expect的安装路径,expect类似于一个shell,所以脚本的第一行指明通过expect来运行下面的指令。
第二句:设置延时为30秒。
第三句:spawn是expect的语句,执行命令前都要加这句
第四句:是发送的mysql root帐号的密码666666,注意后面的\r即回车。
第五句:interact代表执行完留在远程控制台
shell脚本如何自动输入mysql帐号密码
编写完成后,执行vim的wq命令退出保存tsh。
shell脚本如何自动输入mysql帐号密码
然后执行如下命令给tsh加上可执行权限。
sudo chmod 755 /tsh
shell脚本如何自动输入mysql帐号密码
然后执行tsh就可以看到mysql自动输入帐号密码登录了。
shell脚本如何自动输入mysql帐号密码
除了上面介绍的使用expect命令外,用户也可以切换到root用户下,在root用户的家目录,建立一个mycnf的文件,让mysql本身实现免密码登录,这样在shell脚本中只需要执行mysql命令即可自动登录了,具体可以参考之前发布的经验。

呃,看不到,自动输入的思路就是首先获取那个框框的坐标或是颜色识别得到坐标,然后延迟N秒,然后鼠标左击一下,延迟,"其他命令"-"输入内容"-"文本"-密码,然后就OK了,很详细了,给分吧


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13403901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存