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

2023-11-11

前段时间有个需求,需要利用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命令来登陆,然后进入要上传文件的目录,最后开始上传,上传完成后断开连接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在linux shell中使用ftp命令来实现自动上传与下载 的相关文章

随机推荐

  • 使用centos7搭建syslog和loganalyzer日志服务器

    主要步骤是网上根据博客来安装及排错调试 这两张帖子都写的很详细 http www ifzhai com article php id 9 https blog csdn net qq 33157780 article details 506
  • java String类(超详细,含常用方法、面试题,内存图,案例)

    String类 一 String类的特点 二 String 类的常见构造方法 三 String常见的面试题 1 字符串常量池 2 String s abc 与String s new String abc 区别 3 字符拼接 4 常量优化机
  • pgsql数据库存储过程中,批量操作数据

    82 数据库存储过程中 批量操作数据 DECLARE record row record 定义一个名为 record row 的记录类型变量 BEGIN FOR record row IN SELECT name age id card F
  • Python制作宝石消消乐小游戏

    开发工具 Python版本 3 6 4 相关模块 pygame模块 以及一些Python自带的模块 相关文件 关注公众号 Python学习指南 回复 消消乐 即可获取 环境搭建 安装Python并添加到环境变量 pip安装需要的相关模块即可
  • Unity简单几行代码让玩家水平移动更丝滑真实

    可以先来看看基础的移动代码 接收玩家的输入 然后赋予刚体速度 但是这种写法存在几个问题 下面一一纠正 首先 如果直接改变刚体的速度 那么可能会出现穿墙的问题 而且没有一种从速度0到缓慢加速的过程 那样较为机械且不真实 所以可以用物理模拟的方
  • Leetcode 448.找到所有数组中消失的数字

    448 找到所有数组中消失的数字 力扣 LeetCode 题目描述 给你一个含 n 个整数的数组 nums 其中 nums i 在区间 1 n 内 请你找出所有在 1 n 范围 但没有出现在 nums 中的数字 并以数组的形式返回结果 示例
  • openAI api 生产最佳实践

    生产最佳实践 本指南提供了一套全面的最佳实践 帮助您从原型过渡到生产 无论您是经验丰富的机器学习工程师还是最近的爱好者 本指南都应为您提供将平台成功投入生产环境所需的工具 从确保访问我们的API到设计能够处理高流量的健壮架构 使用本指南可帮
  • Python-matplotlib画图(莫烦笔记)

    https www zhihu com collection 260736383 lt 此处就不自己写了 看了遍 照着写了一边 作者写的不错 不过有些有些偷懒 我只做了常见的功能 gt 作者 触摸壹缕阳光 链接 https zhuanlan
  • 如何创建你的第一个西门子200PLC程序

    更多关于西门子S7 200PLC内容请查看 西门子200系列PLC学习课程大纲 创建西门子200PLC程序分五步 1 打开Micro WIN软件 2 新建工程 3 打开程序编辑器 4 输入程序指令 5 保存程序 我们以下图程序为例讲解西门子
  • 全栈之前端

    欢迎关注 全栈工程师修炼指南 作者 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 花开堪折直须折 莫待无花空折枝 文章目录 0x00 前言简述 0x01 超链接标签元素 a 标签 0x02 框架标签元素 iframe 标签
  • Android性能优化 _ 把构建布局用时缩短 20 倍(下),轻松拿下offer

    scaleType ImageView ScaleType FIT XY setImageResource R drawable user portrait gender female also addView it also addVie
  • Spring Boot、Dubbo项目Mock测试踩坑与总结

    本文是对Spring Boot Dubbo项目进行Mock测试的总结与踩坑实录 搜索了一圈 居然没发现类似的文章 莫非用Dubbo的朋友们都不Mock测试 或者有其他的办法测试吗 简单总结了一下 希望对大家能有一定参考意义 如果有更好的测试
  • 小影服务器维修,轩辕传奇2月27日所有服务器停服更新公告

    尊敬的轩辕勇士们 我们计划将于2月27日上午9 00 11 00期间对所有服务器进行停服更新 在更新期间 所有服务器的玩家将暂时无法进入游戏 停服更新结束后 所有服务器的玩家将更新到最新版本 版本号为 1 11 107 2 同时 官网会在更
  • 菜鸟的刷题之路之二叉树

    成功不是终点 失败不是终结 勇气才是启程的第一步 作者 不能再留遗憾了 专栏 菜鸟的刷题之路 本文章主要内容 将有序数组转换为二叉搜索树 二叉搜索树中第K小的元素和叶子相似的树的详细题解 文章目录 将有序数组转换为二叉搜索树 题目要求 做题
  • spring boot 整合dubbo2.7.8

    由于dubbo2 7 8之前的版本有漏洞 项目需要升级至2 7 8 之前用的是阿里的dubbo 在版本切换上遇到过一些问题 特记录一下心得 首先讲下dubbo的版本 dubbo在2 6版本是阿里在管理和维护 后面交给了apache管理 2
  • Linux(一):Linux入门

    概述 Linux 是一套免费使用和自由传播的类 Unix 操作系统 Linux 英文解释为 Linux is not Unix 同时基于多用户 多任务 支持多线程和多 CPU 的操作系统 目前很多企业采用CentOS 本文后续涉及到linu
  • Make sure ‘SystemCfg‘ is registered using qRegisterMetaType

    最近在编写Qt代码的时候遇到标题上的问题 现象是 在收到一个xml字符串需要解析时 我放在线程里面处理 然后线程执行完成后将xml对应的结构体返回给主线程 在主线程的槽函数中始终接收不到 但是在子线程中emit函数是执行过的 在调试窗口中看
  • github push时提示Username for ‘https://github.com‘ 解决办法

    今天进行push的时候一直提醒我输入Username还有PassWord 还出现提示 remote Support for password authentication was removed on August 13 2021 起初我以
  • 剑指 Offer 43. 1~n 整数中 1 出现的次数

    目录 编辑 一 问题描述 二 例子 三 题目接口 四 题目解答 1 暴力解法 2 规律解法 总结 代码 一 问题描述 输入一个整数 n 求1 n这n个整数的十进制表示中1出现的次数 例如 输入12 1 12这些整数中包含1 的数字有1 10
  • 在linux shell中使用ftp命令来实现自动上传与下载

    前段时间有个需求 需要利用crontab定时往某个FTP上传文件 原以为linux中带的ftp命令只支持交互式的操作 没法在命令行下使用 所以后来打算利用PHP中提供的ftp命令来做 但是很不幸的发现ftp模块不是PHP的标准模块 还需要自