ftp一个文件并将其保存在本地机器上(tar文件)

时间:2014-05-13 20:05:41

标签: shell scripting ftp

我需要有关shell脚本的帮助。我想从服务器ftp文件并使用shell脚本将其保存在我的本地计算机上。有人能指出我正确的方向,或给我看示例代码?任何帮助将不胜感激。以下是我尝试过的事情。

逻辑:询问用户的文件名,            登录到服务器,保存名称,在服务器上执行find命令...如果找到文件,保存路径并将文件ftp到我的本地机器但是tar它。如果找不到该文件..显示某种错误信息并转到循环顶部。

任何帮助都会得到很大的帮助

#!/bin/bash
#
#Author: Joseph
#Purpose: To find a file and ftp it 

#declare variables
FILE=""

#start while loop
while [ "$FILE" != "quit" ] ; do

    #Asks for file to be found
    echo "Enter the filename to find:"
    read FILE 
    PATH=$(ssh xxxxxx@xxx.xxx.xxx 'find / -name $FILE 2>notPath.txt')

    #day=$(date)
    #name="$FILE.tgz"
    #PATH=$(find / -name $FILE 2>notPath.txt)

    #tar czf $day/$name $PATH
    #echo "$day/$name"
    echo $PATH
    echo ""
    exit
done

2 个答案:

答案 0 :(得分:0)

我会从rsync开始,你可以使用它来处理大量有用的东西(也就是在本地,远程等同步文件)。

答案 1 :(得分:0)

您是否已从本地计算机将没有密码的ssh配置到远程服务器。

您的代码仅在没有设置密码的ssh时才有效。

设置ssh而不使用密码:

  

ssh-keygen -t rsa

     

ssh b @ B mkdir -p .ssh

     

cat .ssh / id_rsa.pub | ssh b @ B' cat>>的.ssh / authorized_keys的'

其中' b'是远程服务器用户名和' B'是远程服务器IP或主机名(如果设置了/ etc / hosts)。

或者,在发送find命令之前,您将要求expect查询传递用户名和密码以登录服务器。