ftpshell脚本
1. shell脚本实现的ftp中连续put文件,怎样在多句put命令间加入休眠sleep
不太明白为什么要在ftp文件时加sleep,而且里面还加exit?
要执行sleep和exit必须在<< END-END外,笨点的办法写一个函数就可以了。
#!/bin/sh
ftp2put()
{
ftp -i -n <<END
open 10.1.128.112 3839
user admin0012 admin
binary
prompt off
put FTPPerformanceTest/$1 $2
bye
END
}
ftp2put 10Apt.txt 10
sleep 1
ftp2put 20Apt.txt 20
sleep 1
ftp2put 30Apt.txt 30
sleep 1
exit
2. 用shell脚本写ftp时,怎么自动填写用户名和密码,而不用执行shell脚本后手动输入用户名和密码
用
ftp -n <<EOF
3. shell脚本中ftp问题
ftp 登录后,我感觉是不支持shell语法的(目前还不确定),建议使用mget 下载多个文件!
4. 如何编写shell脚本实现ftp自动上传
由于已经登陆进去FTP了,所以所使用的变量,就不是和当前shell变量一样,即user和passwd不能用$user和$passwd来取值
5. 求助:使用SHELL语言编写一个脚本实现ftp功能,将一个文件从本地a目录取到服务器b目录。
下面这个是我一直在用的,会检查ftp错误。
#!/bin/sh
ftp_put()
{
# -n:不使用auto-login;-i:不使用交互式提示输入
ftp -n -i $ipAddr <<EOF
quote USER $username
quote PASS $password
cd b
lcd a
binary
put $myfile
bye
EOF
}
ipAddr=ftp地址
username=你的ftp用户名
password=你的ftp密码
myfile=你要传的文件名(只要名称无需路径)
putErrlog=用于记录ftp错误的日志文件
ftp_put >/dev/null 2>$putErrlog #ftp错误导入日志文件
bytes=`wc -c $putErrlog | awk '{print $1}'` #检查错误日志文件的字节大小
if [ $bytes -ne 0 ]; then #大小不为0说明发生了错误,之后可以手动打开文件检查错误原因
echo "FTP put failed!"
exit 1
else
echo "FTP put successfully!"
fi
exit 0
6. shell连接ftp的脚本
区别在于排版不同
你使用<< FTPINI时, 下面的行都要在定格写,即行开头不能有空格,直至结束,如
ftp -i -n $ip << FTPINI
cd /pub
ls
FTPINI
而加了-后,下面的行可以加入tab排版,如
ftp -i -n $ip <<-FTPINI
cd /pub
ls
FTPINI
7. shell脚本的FTP程序有点看不懂,请教解释
1. -i表示关闭交互式登陆方式,就是就不问你什么帐号密码了
-n表示不使用.netrc自动登陆。.netrc是ftp的初始化文件
2. open 10.1.128.112 3839,这3839表示端口
3. 没错,是用户名密码
4. 这个应该错了在我这ftp下没这个命令,我这是centos 5.4
ftp> put FTPPerformanceTest/2.sh
local: FTPPerformanceTest/2.sh remote: FTPPerformanceTest/2.sh
local: FTPPerformanceTest/2.sh: No such file or directory
执行shell脚本也出错
local: FTPPerformanceTest/2.sh: No such file or directory
改成put $1 $2后正常
5. ftp2put 20Apt.txt 20最终反应到shell脚本中的命令就是put 20Apt.txt 20,即把20Apt.txt上传到ftp服务器并改名为20
6. sleep 1 表示休眠1秒对吧?,对的。
8. 用shell脚本调用ftp命令,mget怎么取得动态文件
#!/usr/bin/sh
TZ=TZ+96
day1=`date+%Y%m%d`
TZ=TZ+72
day2=`date+%Y%m%d`
TZ=TZ+48
day3=`date+%Y%m%d`
TZ=TZ+24
day4=`date+%Y%m%d`
TZ=TZ
day5=`date+%Y%m%d`
SERVER=server
USERNAME=username
PASSWORD=password
ftp-n$SERVER<<EOF
user$USERNAME$PASSWORD
cdremote_path
lcdlocal_path
binary
verbose
get$day1.mat
get$day2.mat
get$day3.mat
get$day4.mat
get$day5.mat
close
quit
EOF
9. shell脚本中ftp连接
你先看看你的IP是不是192开头的并且大多数都是这样的
192.168.1.什么什么的记住第3位一定要是1.