【问题标题】:shell script to moving files from one server to another server using sftp使用 sftp 将文件从一台服务器移动到另一台服务器的 shell 脚本
【发布时间】:2020-04-24 23:24:56
【问题描述】:

我在这里使用 sftp 将 jar 从服务器 A 移动到服务器 B:

[mars@server33 ND_Jars]$ ls
   abc-5.5.0.jar     
   abc1-5.4.3.jar    
   abc2-5.5.0.jar   
   abc3-5.5.0.jar   
   abc4-com-5.5.0.jar

[mars@server33 ND_Jars]$ ll    
total 3552    
-rw-rw-r-- 1 mars mars 1184548 Jan  7 14:32 abc1-com-5.5.0.jar     
-rw-rw-r-- 1 mars mars 1130509 Dec 26 11:30 abc2-5.4.3.jar    
-rw-rw-r-- 1 mars mars   24694 Dec 30 17:27 abc3-5.5.0.jar    
-rw-rw-r-- 1 mars mars   45454 Dec 18 16:25 abc4-5.5.0.jar    
-rw-rw-r-- 1 mars mars 1236350 Jan  7 14:32 abc-5.5.0.jar    
[mars@server33 ND_Jars]$ sftp sftpuser@5     
Connecting to 10.0.14.19...     
sftpuser@10.0.14.19's password:    
sftp> cd sftp_dir     
sftp> put abc-5.5.0.jar    
Uploading abc-5.5.0.jar to /sftp_dir/abc-5.5.0.jar

我想要一个 shell 脚本,以便我可以一次执行所有这些命令,但我不知道如何在 shell 脚本中硬编码(sftpuser@10.0.15.19 和密码)。

我现在写的shell脚本是:

for f in *.jar
do  
    cp -v "$f" /home/webapps/project1/folder2/"${f%.jar}"$(date +%m%d%y).jar  
done 

在这些脚本中,我只是将文件复制到另一个位置。

我需要一个 shell 脚本来执行mv jar 从一台服务器到另一台服务器 就像上面提到的sftp 命令。

【问题讨论】:

  • 使用 sshpass 为脚本提供密码。
  • 并使用 ``scp *.jar user@remote` 从一个命令复制多个文件。而且,不是真正的编程问题。请在此处发布更多问题之前阅读Help On-topicHelp How-to-ask。祝你好运。

标签: linux bash shell jar


【解决方案1】:

使用scp

for f in *.jar
do  scp "$f" sftpuser@10.0.14.19:/home/webapps/project1/folder2/"${f%.jar}"$(date +%m%d%y).jar  
done 

如果可能,请设置一个公钥,以便脚本中不需要密码。像scpsftp 这样的良好传输系统将更容易以这种方式实现自动化。

【讨论】:

    【解决方案2】:

    如果您的服务器中安装了expect 实用程序,您可以通过以下方式使用它:

    expect <<EOF
    set timeout -1
    spawn /usr/bin/sftp ${user_name}@${HOSTNAME}
    expect "password:"
    send "${passwd}\r"
    expect "sftp>"
    send "cd /the_path/to_put_files/\r"
    expect "sftp>"
    send "mput *\r"
    expect "sftp>"
    send "bye\r"
    EOF
    

    set timeout -1 == for sending n number of files to remote server without timeout constraint.
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      相关资源
      最近更新 更多