ChinaUnix.net
 >> ChinaUnix.net > Shell

请教ftp自动传文件的脚本

作者:truge     发表时间:2002/01/30 04:52pm

$ 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),请各位指点。


此文章相关评论:
该文章有35个相关评论如下:(点这儿可以发表评论)
feeling 发表于: 2002/01/30 05:50pm
试一试这个:
#cat ftpauto.sh
[quote]
#!/bin/sh
ftp -n<<!
open 10.10.10.10
user USERNAME PASSWD
binary
prompt off
cd /yourpath
mput *.Z
mget *.tar
close
bye
!
[/quote]
将这个脚本加入crontab中即可实现定时ftp自动传输
 
truge 发表于: 2002/02/01 09:36am
谢谢feeling的热心帮助。It does work.
 
cindy 发表于: 2002/04/26 09:39am
能帮忙解释一下吗?
 
valentine 发表于: 2002/04/26 10:02am
[这个贴子最后由valentine在 2002/04/26 10:03am 编辑]

用.netrc应该chmod 400 .netrc(属主只读),否则不能工作,这样安全性高一些。
把密码,用户名写到脚本里也可以。
 
member 发表于: 2002/04/26 06:25pm
[这个贴子最后由member在 2002/04/26 10:31pm 编辑]

用 ftp -i -n<<!!
....
...
!!
也可以.
 
shitalone 发表于: 2002/04/30 02:44pm
ftp -n<<!
请教这句话的意思。-n的含义,<<的含义,和!的含义。
:em14:
 
kiner007 发表于: 2002/04/30 06:04pm
--------------------------------------------------------------------------------

#!/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 文件中加入了用户名和密码的话,脚本中的用户名和密码还需要吗?

 
valentine 发表于: 2002/04/30 06:16pm
1。当然是真实的密码。
2。二者可则其一。
 
kiner007 发表于: 2002/04/30 06:18pm
如果我不想再脚本中输入用户和密码,那脚本中的
user USERNAME PASSWD 这一行应该怎么写?
 
valentine 发表于: 2002/05/01 08:45am
when you put the username and passwd to .netrc file, ftp  command will automatically use the username to login .
 
kiner007 发表于: 2002/05/03 04:02pm
好像不能加参数 -n, ftp ip <<! 就好了
 
bpmf 发表于: 2002/05/08 01:37pm
那怎么把自动上传的文件名后面加上日期呢?
 
shuweich 发表于: 2002/06/06 05:15pm
[这个贴子最后由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: 多文件传输不应答
[move]:em27:[/move]

 
laoer23 发表于: 2002/06/10 08:54am
请问.netric文件在那个目录下?
 
luowd 发表于: 2002/06/10 09:18am
若是改成telnet,自动登录到一主机上做某项工作,是否和ftp一样那?
 
xby 发表于: 2002/06/19 04:38pm
请问在windows98下怎么实现文件自动传文件(怎么用c编写一个小程序)
 
nirenz 发表于: 2002/06/19 04:52pm
[这个贴子最后由nirenz在 2002/06/19 04:53pm 编辑]

还不是和前面一样,写成批处理文件即可。不需要用C来完成
将所有ftp指令写到一个文件中(如ftp.cmd)
open ipaddress
user username password
get  filename
by
在批处理文件中(如ftpfile.bat)加入如下指令
ftp -n < ftp.cmd
即可
 
bluespace 发表于: 2002/06/20 10:18am
用户的当前根目录下,属主最好600
 
cpss 发表于: 2002/06/21 11:07am
在你做事情的帐号的家目录里,如root的在"/"下.
 
xby 发表于: 2002/06/21 09:30pm
我在unix环境下写了
ftp -n<<!
open 10.10.10.2
user username password
.....
bye
!
他老是要我输入password
请问是怎么一回事
 
nirenz 发表于: 2002/06/24 09:01am
user <username> <password>处要填写实际的用户名和密码,老是要你输入password是因为你的密码写的不对
 
fly99sky 发表于: 2002/07/07 08:17am
passwd为空(回车),user username password 这一句该如何写?
 
xby 发表于: 2002/07/09 10:36pm
我 的 密码 当然是 正确的 ,不过是 空密码
 
nirenz 发表于: 2002/07/10 08:32am
ftp的密码是不允许为空的。
 
nortell 发表于: 2002/07/17 11:44am
请问.netric的内容是什么?
 
unixtomlee 发表于: 2002/07/29 05:06pm
如果对方帐号没有密码怎么写???
 
sinnu 发表于: 2002/08/01 11:36am
那你执行时可就要多敲一个回车了 ^_^  
 
zhangr 发表于: 2002/08/01 12:47pm
哈哈!刚想上来找一个自动ftp的shell,结果一下就找到了!爽!谢谢诸位!8-)
 
jazy 发表于: 2002/08/15 01:18pm
我稍微改一下:
#!/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
!

 
blackcarp 发表于: 2002/08/15 08:03pm
各位大虾,请问telnet 到某台机器是否可以编写自动登陆的脚本?不用每次都敲入密码和账号?
 
goodboy 发表于: 2002/08/15 08:05pm
[这个贴子最后由goodboy在 2002/08/15 08:15pm 编辑]

请问:.netrc是怎么个样子,我的机器上怎么没有呀?
我刚才编了一个.netrc文件,vi .netrc
root passwd
可是ftp不是用呀,还是要用密码的。
到底怎么设置?
 
华夏很行 发表于: 2002/08/16 01:31pm
[quote][b]下面引用由[u]laoer23[/u]在 [i]2002/06/10 08:54am[/i] 发表的内容:[/b]
请问.netric文件在那个目录下?
[/quote]
在$HOME目录下
 
valentine 发表于: 2002/08/16 02:20pm
machine liantong login CCB passwd 123456
machine zilaishui login anonymous passwd nothing
machine shcxqt login cxqt passwd qwe456
machine cxqt login cxqt passwd  asd123

这个样的.

 
littletiger 发表于: 2002/09/22 09:31pm
-=-=-=-=-=>
[quote][b]下面引用由[u]laoer23[/u]在 [i]2002/06/10 08:54am[/i] 发表的内容:[/b]
请问.netric文件在那个目录下?
[/quote]
在$HOME目录下
-=-=-=-=-=>
是在ftp的$home 还是要ftp用户的$home目录下啊 ??
 
一颗小白菜 发表于: 2002/09/22 11:38pm
[quote][b]下面引用由[u]jazy[/u]在 [i]2002/08/15 01:18pm[/i] 发表的内容:[/b]
我稍微改一下:
#!/usr/bin/sh
if then
echo "Usage : AutoFtp ip  user passwd  mode directory  method filname"
...
[/quote]

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

 
 

Copyright © ChinaUnix.net  *  转载请注明出处及作者