`
javatgo
  • 浏览: 1125051 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

在linux shell中使用ftp命令来实现自动上传与下载

 
阅读更多

前段时间有个需求,需要利用crontab定时往某个FTP上传文件,原以为linux中带的ftp命令只支持交互式的操作,没法在命令行下使用,所以后来打算利用PHP中提供的ftp命令来做,但是很不幸的发现ftp模块不是PHP的标准模块,还需要自己编译,比较麻烦,后来本着试试看的态度去网上搜了一把,结果发现还真是可以在shell下来利用ftp命令。

首先我们来看ftp的两个参数

-n Restrains ftp from attempting ''auto-login'' upon initial connection. If auto-login is enabled, ftp will check
the .netrc (see below) file in the user's home directory for an entry describing an account on the remote
machine. If no entry exists, ftp will prompt for the remote machine login name (default is the user identity on
the local machine), and, if necessary, prompt for a password and an account with which to login.

-u Restrains ftp from attempting ''auto-authentication'' upon initial connection. If auto-authentication is
enabled, ftp attempts to authenticate to the FTP server by sending the AUTH command, using whichever authentica-
tion types are locally supported. Once an authentication type is accepted, an authentication protocol will pro-
ceed by issuing ADAT commands. This option also disables auto-login.

显然默认情况下,我们不加这两个参数来使用ftp命令的话,如ftp localhost,那么就直接被要求用户名和密码,这样子就走回到交互式的老路上去了。因此要使用非交互式就必须加-n这个参数,(-u不是必须的,如果不加的话,对于一些服务器可能会报一个warning,但是不影响功能)。最终shell脚本如下所示这样子

ftp –u –n $HOST $PORT << CMDS

user $USERNAME $PASSWORD

lcd $DST_FOLDER

put $DST_FILENAME

bye

TAG

这段脚本就告诉ftp命令,不自动登陆,连接到$HOST的$PORT端口,然后依次运行TAG里标注的命令

我们这里是先运行user命令来登陆,然后进入要上传文件的目录,最后开始上传,上传完成后断开连接。

分享到:
评论

相关推荐

    Linux下使用Shell脚本实现ftp的自动上传下载的代码小结

    1. ftp自动登录批量下载文件。 代码如下:#####从ftp服务器上的/home/data 到 本地的/home/databackup#####!/bin/bashftp -n&lt;&lt;!open 192.168.1.171user guest 123456binarycd /home/datalcd /home/...

    linuxshell

    实验任务一: 编写一个Shell过程完成如下功能(必须在脚本中使用函数): 1、合并两个$1、$2文件为$3,并显示。 2、如果缺少$3,那么先报告缺少$3,然后将合并后的内容输出到mydoc.txt。如果有$3,就合并到...

    CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中

    主要介绍了CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中,本文脚本比较实用,其它Linux系统也可参考,需要的朋友可以参考下

    cmd操作命令和linux命令大全收集

    它在 Windows NT/2000/XP 中均可使用,但在 Windows 98 中却没有集成这一个工具。 4. explorer-------打开资源管理器 5. logoff---------注销命令 6. shutdown-------60秒倒计时关机命令 7. lusrmgr.msc----本机...

    linux与unix shell编程指南part2

    14.4.1 在脚本中使用位置参数 142 14.4.2 向系统命令传递参数 142 14.4.3 特定变量参数 143 14.4.4 最后的退出状态 144 14.5 小结 145 第15章 引号 146 15.1 引用必要性 146 15.2 双引号 146 15.3 单引号 147 15.4 ...

    入门学习Linux常用必会60个命令实例详解doc/txt

    在Linux中,如果要使用硬盘、光驱等储存设备,就得先将它加载,当储存设备挂上了之后,就可以把它当成一个目录来访问。挂上一个设备使用mount命令。在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的...

    linux下自动备份MySQL数据并上传到FTP上的shell脚本

    /bin/bash #Mysql autobackup shell # # #—————-set the mysql login parameters dbuser=root dbpasswd= dbserver=localhost dbname=fwserver2008 dbopt=–opt backupdir=/dbbackup/ #—————–set the FTP ...

    xxx autotools_v8.2.rar

    该工具支持界面UI方式操作ssh ftp 上传、下载文件。 使用python语言开发,使用tkinter第三方库,paramiko第三方库。支持读取txt文件中的shell命令执行,并支持设置命令间的延时。使用opencv第三方库,支持对桌面进行...

    netcat 瑞士军刀 linux windows netcat 瑞士军刀 linux windows

     win98用户可以在autoexec.bat加入path=nc的路径,win2000用户在环境变量中加入path中,linux含有这个命令(redhat) 1、基本使用  想要连接到某处: nc [-options] hostname port[s] [ports] ...  绑定端口等待...

    Linux指令一周通 (技术图书大系).azw3

    3.44 quotacheck 指令:检查磁盘的使用空间与限制 3.45 quotaoff指令:关闭磁盘空间限制 3.46 quotaon指令:开启磁盘空间限制 3.47 repquota指令:检查磁盘空间限制的状态 3.48 restore指令:还原dump操作备份文件 ...

    Python Cookbook

    11.3 在tkSimpleDialog函数中使用默认值和区间 405 11.4 给Tkinter列表框增加拖曳排序能力 406 11.5 在Tkinter部件中输入一个重音字符 408 11.6 在Tkinter中嵌入内联的GIF 410 11.7 转换图片格式 412 11.8 在...

    BaiduPCS-Go:重新上传iikiraBaiduPCS-Go

    仿Linux shell文件处理命令的百度网盘命令行客户端。 该项目的灵感主要来自 注意 此文档只针对于最新的提交,可能不适用于已发布的最新版本。 目录 特色 多平台支持,支持Windows,macOS,linux,移动设备等。 百度...

    autotools_v1.2.rar

    该工具支持界面UI方式操作ssh ftp 上传、下载文件。 使用python语言开发,使用tkinter第三方库,paramiko第三方库。支持读取txt文件中的shell命令执行,并支持设置命令间的延时。 支持在windows上运行该程序,远程对...

    JAVA上百实例源码以及开源项目

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    JAVA上百实例源码以及开源项目源代码

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    NC原版与VC60版本

    当配合管道命令”|”与重定向命令”&lt;”、”&gt;”等等命令功能更强大……)。 ======================================================== 高级用法: 6)作攻击程序用,例子: 格式1:type.exe c:exploit.txt|nc -nvv ...

    java开源包3

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包10

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包4

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    NC源码和程序附上目前最详细的使用手册和使用技巧

    当配合管道命令”|”与重定向命令”&lt;”、”&gt;”等等命令功能更强大……)。 ======================================================== 高级用法: 6)作攻击程序用,例子: 格式1:type.exe c:exploit.txt...

Global site tag (gtag.js) - Google Analytics