当前位置:首页 » 文件传输 » shell脚本实现ftp的连接
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

shell脚本实现ftp的连接

发布时间: 2022-06-24 21:10:06

‘壹’ linux系统内 怎么使用shell实现自动上传文件到ftp服务器

ftp自动登录上传单个文件。
把下面脚本另存为文件加入到crontab中即可实现ftp自动上传文件。
####把本地/home/databachup/a.sh up ftp /home/databackup 下####
#!/bin/bash
ftp -n<<!
open 192.168.1.171
user guest 123456
binary
cd /home/data
lcd /home/databackup
prompt
put a.sh a.sh
close
bye
!
注解:
1. -n 不受.netrc文件的影响。(ftp默认为读取.netrc文件中的设定)
2. << 是使用即时文件重定向输入。
3. !是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾。

‘贰’ 求助:使用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

‘叁’ shell脚本中ftp连接

对,$?仅表示上一个命令ftp成功与否。
无法判断远程文件是否存在,只能通过判断本地文件大小来得知。
若远程文件不存在,则FTP获取到本地会产生一个0字节大小的文件(用 wc -c 获取文件字节数,并与0比较即可),也可能就没有产生文件(用test表达式 [ -e $save_name ] 来判断)。
无法判断具体是什么问题,只能得知一个结果:FTP获取文件失败。
--------------------------------------------------------------------------------------------
根据你自己的情况来判断。那就用 [ -e $save_name ] 判断本地文件是否存在。
--------------------------------------------------------------------------------------------
-e 判断文件是否存在(exist),-f 判断这个“文件”是否为文件(file)

‘肆’ shell脚本ftp到远程目录

1.下载远程电信机房中机器上已打包好的数据.这个不难,一条语句搞定.
复制代码代码如下:
wget
ftp://user_name:password@ip_address:port/dir/file_name
2.定时任务,需要写个脚本,并加入定时任务中.
a.脚本.假设你计划将远程的文件备份到/var/www/html/back目录下,到这个目录下,新建文件,内容如下
复制代码代码如下:
!#/bin/sh
cd
/var/www/html/back/
wget
ftp(上面那条语句)
保存为bak.sh
b.加入定时任务.直接vi
/etc/crontab
在最后一行加入如下语句
复制代码代码如下:
30
18
*
*
*
root
/var/www/html/back/bak.sh(脚本保存的位置)
这样每天下午6:30本地的centos机器自动会将远程FTP的文件备份到/var/www/html/back中了.

‘伍’ 用shell 脚本登陆远程ftp 1.如何确认ftp连接成功2.如何确认文件是否上传成功3.如何返回一些参数信息

在上传的机器写个验证脚本。用cron定时执行。

‘陆’ shell脚本中ftp问题

ftp 登录后,我感觉是不支持shell语法的(目前还不确定),建议使用mget 下载多个文件!

‘柒’ 求linux下写shell脚本 FTP直接连接内网里的服务器的思路

不用shell脚步,安装一个端口映射工具,比如stunnel,把C的ftp端口映射到B即可,你在A上访问B的ftp就会映射到C的ftp。

‘捌’ shell连接ftp的脚本

区别在于排版不同
你使用<< FTPINI时, 下面的行都要在定格写,即行开头不能有空格,直至结束,如
ftp -i -n $ip << FTPINI
cd /pub
ls
FTPINI

而加了-后,下面的行可以加入tab排版,如
ftp -i -n $ip <<-FTPINI
cd /pub
ls
FTPINI

‘玖’ vba 中的用shell连接FTP服务器问题问题

因为shell
语句
是调用
程序
来运行的,你应该调用程序,并且把
参数传递
给程序,这样就行了...
比如,Shell
"C:\Program
Files\Internet
Explorer\iexplore.exe
www..com",这样就能用IE链接到网络上...
你的可以试试Shell
"C:\Program
Files\Internet
Explorer\iexplore.exe
ftp://[email protected]\123\123\12#.xls",用Shell
"C:\WINDOWS\explorer.exe
"
&
"ftp://[email protected]\123\123\12#.xls"也可以...我这边测试时没
权限
,上不去...
由于你是连接
服务器
,有时需要
用户权限
,这样的话,
参数
就要相对复杂一点...

‘拾’ 编写脚本,如何实现自动ftp到相应的环境,并下载相应的文件(shell)

可是试试用 wget 下载。这个可以登录下载一起完成。
组织一下写入shell脚本中(因为你的具体情况我不清楚,所以脚本代码不知道该怎么给你写,你自己写进去吧):

wget -c -t 10 "ftp://user:passwd@IP/dir/file" & > /dev/null

===============
后台静默执行,如果出错会显示出错信息(没有将错误信息送到null中就是此意)。
如果要指定要下载到的目录,就这样
wget -c -t 10 "ftp://user:passwd@IP/dir/file" -P 目标目录
=========================