当前位置:Linux教程 - Ftp服务 - ftp服务 - 请教ftp自动传文件的脚本

ftp服务 - 请教ftp自动传文件的脚本

请教ftp自动传文件的脚本
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

$ vi ftpauto

#! /bin/sh
echo "machine $1 login truge password 1234">/usr/truge/job/.netrc
chmod 770 /usr/truge/job/.netrc
ftp $1 << EOF
bin
cd /usr/tmp
prompt
mput *
EOF
rm /usr/truge/job/.netrc

这是书上的例子,我稍微改了一下,但是不能用(scounix505),请各位指点。

试一试这个:
#cat ftpauto.sh


#!/bin/sh
ftp -n<<!
open 10.10.10.10
user USERNAME PASSWD
binary
prompt off
cd /yourpath
mput *.Z
mget *.tar
close
bye
!


将这个脚本加入crontab中即可实现定时ftp自动传输



谢谢feeling的热心帮助。It does work.

能帮忙解释一下吗?

[这个贴子最后由valentine在 2002/04/26 10:03am 编辑]

用.netrc应该chmod 400 .netrc(属主只读),否则不能工作,这样安全性高一些。
把密码,用户名写到脚本里也可以。

用 ftp -i -n<<!!
....
...
!!
也可以.

ftp -n<<!
请教这句话的意思。-n的含义,<<的含义,和!的含义。

--------------------------------------------------------------------------------

#!/bin/sh
ftp -n<<!
open 10.10.10.10
user USERNAME PASSWD
binary
prompt off
cd /yourpath
mput *.Z
mget *.tar
close
bye
!

--------------------------------------------------------------------------------

这个脚本中的 USERNAME PASSWD 要用真实的用户名和密码代替吗?
$HOME/.netrc 文件中加入了用户名和密码的话,脚本中的用户名和密码还需要吗?

1。当然是真实的密码。
2。二者可则其一。

如果我不想再脚本中输入用户和密码,那脚本中的
user USERNAME PASSWD 这一行应该怎么写?

when you put the username and passwd to .netrc file, ftp command will automatically use the username to login .

好像不能加参数 -n, ftp ip <<! 就好了

那怎么把自动上传的文件名后面加上日期呢?

[这个贴子最后由shuweich在 2002/06/06 05:21pm 编辑]

楼上所问,我来回复:
ftp -n<<!
请教这句话的意思。-n的含义,<<的含义,和!的含义。

-n 不受.netrc文件的影响(ftp默认为读取.netrc文件中的设定)
<< 是使用即时文件重定向输入,
!是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾。(你也可以不用“!”,比如使用一对“INPUT_TEXT”也是可以的)
即时文件是UNIX输入重定向的一种技术,本来输入重定向要求从文件中读取内容,但即时文件可以把程序所需输入内容的内容直接写出来,就是你在上面例子中看到的那样。
其实你所要求的自动FTP脚本还可以写成如下的形式:
(echo "user username password"
echo "hash"
echo "bin"
echo "prompt"
echo "mget *.tar"
echo "quit")|ftp -n 202.100.101.102

## 其中:
hash: 传文件时同时回显每 1024 或 2048 Bytes 一个“#”字
prompt: 多文件传输不应答

请问.netric文件在那个目录下?

若是改成telnet,自动登录到一主机上做某项工作,是否和ftp一样那?

请问在windows98下怎么实现文件自动传文件(怎么用c编写一个小程序)

还不是和前面一样,写成批处理文件即可。不需要用C来完成
将所有ftp指令写到一个文件中(如ftp.cmd)
open ipaddress
user username password
get filename
by
在批处理文件中(如ftpfile.bat)加入如下指令
ftp -n < ftp.cmd
即可

用户的当前根目录下,属主最好600

在你做事情的帐号的家目录里,如root的在"/"下.

我在unix环境下写了
ftp -n<<!
open 10.10.10.2
user username password
.....
bye
!
他老是要我输入password
请问是怎么一回事

user <username> <password>处要填写实际的用户名和密码,老是要你输入password是因为你的密码写的不对

passwd为空(回车),user username password 这一句该如何写?

我 的 密码 当然是 正确的 ,不过是 空密码

ftp的密码是不允许为空的。

请问.netric的内容是什么?

如果对方帐号没有密码怎么写???

那你执行时可就要多敲一个回车了

我稍微改一下:
#!/usr/bin/sh
if [ $# -lt 7 ]
then
echo "Usage : AutoFtp ip user passwd mode[binary/ascii] directory method[mput/mget] filname"
exit
fi


ftp -n<<!
open $1
user $2 $3
$4
prompt off
cd $5
$6 $7
close
bye
!

各位大虾,请问telnet 到某台机器是否可以编写自动登陆的脚本?不用每次都敲入密码和账号?

请问:.netrc是怎么个样子,我的机器上怎么没有呀?
我刚才编了一个.netrc文件,vi .netrc
root passwd
可是ftp不是用呀,还是要用密码的。
到底怎么设置?



在$HOME目录下

machine liantong login CCB passwd 123456
machine zilaishui login anonymous passwd nothing
machine shcxqt login cxqt passwd qwe456
machine cxqt login cxqt passwd asd123

这个样的.

在$HOME目录下
-=-=-=-=-=>
是在ftp的$home 还是要ftp用户的$home目录下啊 ??



这个传递的变量也太多乐吧?而且弄得好像都不能用.netrc乐