我需要有关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
答案 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查询传递用户名和密码以登录服务器。