在我的unix系统上,我的一个目录中有n个文件。有没有办法编写一个there脚本,通过scp将所有这些文件传输到指定的远程系统。我将在脚本中指定密码,这样就不必为每个文件输入密码。
发布于 2013-04-25 04:32:11
使用SSH密钥而不是在shell脚本中硬编码密码,这样更容易,也更安全。
$ scp -i ~/.ssh/id_rsa *.derp devops@myserver.org:/path/to/target/directory/
假设您的私钥位于~/.ssh/id_rsa
,并且可以使用*.derp
过滤要发送的文件
要生成公钥/私钥对:
$ ssh-keygen -t rsa
上面将生成两个文件,~/.ssh/id_rsa
(私钥)和~/.ssh/id_rsa.pub
(公钥)
要设置SSH密钥以供使用(一次性任务):复制~/.ssh/id_rsa.pub
的内容,并将其粘贴到myserver.org
服务器中~devops/.ssh/authorized_keys
的新行中。如果~devops/.ssh/authorized_keys
不存在,请随意创建它。
here上提供了一个清晰的操作指南。
发布于 2011-12-16 08:34:37
#!/usr/bin/expect -f
# connect via scp
spawn scp "user@example.com:/home/santhosh/file.dmp" /u01/dumps/file.dmp
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "PASSWORD\r"
}
}
interact
http://blogs.oracle.com/SanthoshK/entry/automate_linux_scp_command
发布于 2015-11-16 14:32:47
你为什么不试试这个呢?
password="your password"
username="username"
Ip="<IP>"
sshpass -p "$password" scp /<PATH>/final.txt $username@$Ip:/root/<PATH>
https://stackoverflow.com/questions/1346509
复制相似问题