前段时间有个需求,需要利用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系统中,Bash Shell脚本是一种强大的自动化工具,可以执行一系列命令,极大地提高了工作效率。在某些场景下,我们可能需要在脚本中使用`sudo`命令来执行需要管理员权限的操作。通常,运行带有`sudo`的命令时...
### 二、编写Shell脚本实现FTP上传 #### 1. Shell脚本的基本结构 一个典型的Shell脚本通常包含以下几部分: - **Shebang(#!)**:指定解释器路径,例如`#!/bin/bash`。 - **变量定义**:定义脚本中使用的变量。 - ...
Linux系统下的FTP自动上传脚本通常使用Shell脚本语言编写。下面是一个示例脚本: ```bash #!/bin/bash ftpserver=10.10.130.222 ftpuser=fw ftppasswd=fw logfile=ftp.log ftp -i -n <<END_FTP > $log...
本文将详细介绍如何利用Linux shell脚本结合FTP命令来实现这一功能。 #### 需求分析 假设我们需要从远程服务器上下载那些创建时间晚于某个特定时间点的文件。这些文件通常位于远程服务器的一个固定目录下,并且具有...
这时,我们可以编写一个shell脚本来实现这一功能,并通过cron定时任务进行自动化执行。下面详细讲解如何利用shell脚本和FTP命令实现这个过程。 首先,我们需要了解几个关键概念: 1. **Shell脚本**:Shell脚本是...
在IT行业中,shell脚本是一种常用的自动化工具,尤其在Linux或Unix系统中,它能够帮助用户执行一系列命令,实现批量处理任务。在这个场景中,shell脚本被用来实现在不同主机间传输文件,并通过FTP(File Transfer ...
实验报告“中北大学操作系统云沙箱实验报告-使用Shell脚本实现局域网MAC地址收集和FTP服务监控”详细介绍了如何通过Shell脚本在Linux操作系统中管理和监控局域网内的设备。实验主要分为三个部分:FTP服务器的部署、...
实验任务一:编写一个Shell过程完成如下功能(必须在脚本中使用函数):1、程序接受3个参数:$1、$2和$3,合并两个$1、$2文件为$3,并显示,三个文件均为文本文件。2、如果缺少$3,那么先报告缺少$3,然后将合并后的...
而在Linux系统中,Shell脚本是一种强大的工具,可以通过编写简单的脚本来自动化一系列的任务。将Shell脚本与FTP结合起来,可以高效地实现文件的自动传输。 #### 二、Shell脚本中FTP命令的解析 在给定的脚本中,...
6. **编写shell脚本实现文件采集**: - 在shell脚本中,使用上述FTP命令,并结合错误处理和日志记录,确保脚本的健壮性。 - 脚本可能包括检查网络状态、验证FTP连接、选择要下载的文件、处理文件重命名或备份等...
FTP 自动登录脚本是指使用脚本语言编写的自动登录 FTP 服务器的程序,用于实现自动化的文件传输和备份。 在这个示例中,我们将介绍如何使用 Linux 系统和 lftp 软件来实现 FTP 自动登录备份脚本。该脚本将自动连接 ...
编写shell脚本能够实现批处理任务,提高工作效率。 接着,让我们来看如何`按时间条件导出表数据`。这通常涉及到SQL查询,例如使用`SELECT`语句从数据库中获取特定时间范围内的记录。你可以使用`mysql`命令行工具...
首先,我们需要了解FTP的基本命令,如`open`用于连接服务器,`user`和`pass`用于验证身份,`cd`改变目录,`get`下载文件,`put`上传文件,以及`bye`结束会话等。 在Bash脚本中,我们可以使用`ftp`命令行工具来执行...
本文将详细介绍如何利用Shell脚本在Linux系统上实现MySQL数据库的定时自动备份,并通过FTP协议上传至远程服务器。 #### 目标需求分析 目标是开发一个脚本,该脚本能定期执行MySQL数据库的备份,并将这些备份文件...
总结来说,Linux下的FTP自动备份shell脚本利用了FTP命令的非交互模式和Here文档来实现自动化传输。通过定义变量和编写逻辑,脚本能够从远程服务器下载文件,打包备份,然后删除本地的原始文件,从而确保备份过程的...
Shell脚本实现自动输入密码登录服务器是自动化运维和部署中的常见需求,特别是在执行涉及权限验证的任务时,如scp文件传输或SSH远程连接。在这种情况下,使用expect工具可以帮助我们编写脚本,自动处理需要用户交互...
在Linux操作系统中,实现自动从FTP服务器下载数据文件的需求,主要涉及到两个关键工具:`wget`和`crontab`,以及使用`shell`脚本来整合这些工具。下面将详细介绍这两个工具及其在实现自动化下载过程中的作用。 1. `...
这个话题涉及到多个关键知识点,包括Shell脚本编写、Oracle数据库管理以及系统服务自动化。 首先,`solaris_oracle_start-failure.TXT`和`solaris_oracle_start_success.TXT`可能包含了尝试启动Oracle数据库时的...
- **批量创建目录**:通过编写shell脚本可以自动化创建多个目录,例如使用`mkdir -p`命令。 - **日志处理脚本**:示例脚本用于筛选日志,提取特定日期的线程挂起信息,这通常涉及正则表达式和日期处理。 在Linux中...
15. **网络通信**:发送HTTP请求,FTP上传下载,邮件发送,DNS查询等网络操作可以通过Shell脚本实现。 通过学习《Shell脚本100例-v0.8》,用户不仅能掌握基本的脚本编写技巧,还能了解到如何利用Shell脚本来自动化...