Linux 使用ftp 定时下载更新文件

323 阅读2分钟
  1. 首先确认当前下载服务器安装了
 service vsftpd status

如果没有安装先去安装:blog.csdn.net/SoWhatWorld…

安装完成后检查是否安装ftp 命令,如果提示**-bash: ftp: 未找到命令** 安装ftp命令

 yum -y install ftp

测试连接ftp  输入ip回车后提示输入账号和密码

  ftp 123.123.123.123 # 换成连接的ip

image.png

可以 使用 ls 命令查看当前的文件,到此说明可以正常使用ftp。

  1. 编写shell 命令 (条件是定时更新最新的文件,思路:执行的时候清空目录下的文件,然后再通过ftp下载最新的文件)
####ftp服务器上下载 1.xlsx
#!/bin/bash
rm -f /home/ftproute/1.xlsx  # 先删除旧的文件
ftp -n<<!
open 123.123.123.123 #替换 ip 
user 用户名 密码 # 替换用户名 密码
binary # 设置文件传输方式为二进制模式

lcd /home/ftproute #改变本地的当前目录为 /home/ftproute
prompt #  关闭交互模式    
get 1.text 1.xlsx # 从服务器下载指定文件到客户端 1.text 是ftp文件 1.xlsx 是要保存成什么文件
close #在不结束ftp进程的情况下,关闭与ftp服务器的连接
bye  # 退出ftp命令状态#执行本地主机命令

写完之后先手动执行一下.sh 文件看看是否有报错,然后再加入定时任务

crontab -e

加入:每天晚上10点执行一次

1 22 * * * /home/backup/bkDatabaseName.sh

下面附上ftp 常用命令和表格

  • systemctl start vsftpd   启动
  • systemctl stop vsftpd    停止
  • systemctl restart vsftpd  重启
内部命令说明
ls显示服务器上的目录
get从服务器下载指定文件到客户端
 put 从客户端传送指定文件到服务器
 open 连接ftp服务器
 quit 断开连接并退出ftp服务器
cd directory 改变服务器的当前目录为directory
lcd directory 改变本地的当前目录为directory
 bye 退出ftp命令状态
ascii 设置文件传输方式为ASCII模式
binary 设置文件传输方式为二进制模式
 执行本地主机命令
cd 切换远端ftp服务器上的目录
cdup 上一层目录
close 在不结束ftp进程的情况下,关闭与ftp服务器的连接
delete 删除远端ftp服务器上的文件
get 下载
hash 显示#表示下载进度
mdelete 删除文件,模糊匹配
mget 下载文件,模糊匹配
mput 上传文件,模糊匹配
mkdir 在远端ftp服务器上,建立文件夹
newer 下载时,检测是不是新文件
prompt 关闭交互模式
put 上传
pwd 显示当前目录