linux下编写一个脚本,定时从ftp服务器下载前一天的文件,进行备份到linux。

我的ftp服务器是一个windows系统,使用脚本时,先测试里面的命令是否已经能够正常运行。
小白实践成功,记录下来。

一、写脚本

1、linux服务器 /home/test1/ 下建一个download.sh

cd /home/test1
touch download.sh

2、脚本写入:
vi download.sh

#下载前一天生成的文件脚本

#!/bin/bash
wget -r -nH -P/home/test/ ftp://0.0.0.0:900/*$(date -d "1 day ago" +"%Y%m%d")* --ftp-user=root --ftp-password=123456

解释:
0.0.0.0:900 # ftp服务器的IP和对应端口。
-r参数就是用来目录下载的,递归下载
-nH不包含主机文件夹
ftp://0.0.0.0:900/*$(date -d "1 day ago" +"%Y%m%d")* ,提取ftp服务器目录下的文件。
-P 下载到指定目录,下载到linux目录/home/test1/

全量下载所有文件代码如下:

wget -r -nH -P/home/test/ ftp://0.0.0.0:900/* --ftp-user=root --ftp-password=123456

下载当天日期的文件代码如下:

wget -r -nH -P/home/test/ ftp://0.0.0.0:900/*$(date +"%Y%m%d")* --ftp-user=root --ftp-password=123456

3、/home/test目录下赋予脚本执行的权限:chmod +x download.sh
可以运行sh download.sh测试脚本

二、定时运行脚本

1、service crond status #查看crond启动状态
2、crontab -e #写入定时任务
写入:30 16 * * * /home/test1/download.sh #每天16:40执行
3、crontab -l #查看当前任务调度
4、/sbin/service crond start #启动crond服务
4、cat /var/spool/mail/root #查看定时任务生成的日志

三、其他命令

1、ll
命令行输入ll或者ls -l查看文件的访问权限。

2、ntsysv
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
总结一下功能按钮:
上下键:可以在中间的方框当中,在各个服务之间移动;
空格键:可以用来选择你所需要的服务,[*]表示开起启动;
tab键:可以在方框、OK、Cancel之间移动;
[F1]键:可以显示该服务的说明。

3、vi ~/.bash_profile #环境变量配置
可以在家目录下查看.bash_profile里的PATH。
如果是:PATH=$PATH:$HOME/bin则需要添加成如下:

PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin

4、yum install ftp/wget
安装命令

5、每隔30分钟root执行一次updatedb命令
*/30 * * * * root updatedb

四、注释

1、linux drwxr-xr-x #linux文件属性,ll可以查看
d:第一位表示文件类型。d是目录文件,l是链接文件,-是普通文件,p是管道
rwx:第2-4位表示这个文件的属主拥有的权限,r是读,w是写,x是执行。r:可读取文件的实际内容
w:可编辑、新增、修改该文件的实际内容
x:可被执行
r-x:第5-7位表示和这个文件属主所在同一个组的用户所具有的权限。
r-x:第8-10位表示其他用户所具有的权限

2、crontab 格式

 *  *  *  *  *       XXX分   时  天  月   星期     命令

取值范围:分钟 (0-59),小時(0-23),日期(1-31),月份(1-12),星期(0-6) //0代表星期天
符号 “*”代表取值范围内的数字,
   “/”代表”每”,
   “-”代表从某个数字到某个数字,
   “,”分开几个离散的数字

例子:
30 3 10,20 * * ls #每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls #每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls #每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls #每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]

3、+%Y%m%d%H%M%S #日期格式
Test.sh命令测试:

#!bin/bash
time2=$(date +"%Y%m%d%H%M%S")
echo $time2

%Y:年份(以四位数来表示)。2019
%m:月份(以01-12来表示)。 10
%d:日期(以01-31来表示)。 23
%H:小时(以00-23来表示)。
%M:分钟(以00-59来表示)。
%S:秒(以本地的惯用法来表示)。

参  数:
 %H  小时(以00-23来表示)。
 %I  小时(以01-12来表示)。
 %K  小时(以0-23来表示)。
 %l  小时(以0-12来表示)。
 %M  分钟(以00-59来表示)。
 %P  AM或PM。
 %r  时间(含时分秒,小时以12小时AM/PM来表示)。
 %s  总秒数。起算时间为1970-01-01 00:00:00 UTC。
 %S  秒(以本地的惯用法来表示)。
 %T  时间(含时分秒,小时以24小时制来表示)。
 %X  时间(以本地的惯用法来表示)。
 %Z  市区。
 %a  星期的缩写。
 %A  星期的完整名称。
 %b  月份英文名的缩写。 time
 %B  月份的完整英文名称。
 %c  日期与时间。只输入date指令也会显示同样的结果。
 %d  日期(以01-31来表示)。
 %D  日期(含年月日)。
 %j  该年中的第几天。
 %m  月份(以01-12来表示)。
 %U  该年中的周数。
 %w  该周的天数,0代表周日,1代表周一,异词类推。
 %x  日期(以本地的惯用法来表示)。
 %y  年份(以00-99来表示)。
 %Y  年份(以四位数来表示)。
 %n  在显示时,插入新的一行。
 %t  在显示时,插入tab。
 MM  月份(必要)。
 DD  日期(必要)。
 hh  小时(必要)。
 mm  分钟(必要)。
 CC  年份的前两位数(选择性)。
 YY  年份的后两位数(选择性)。
 ss  秒(选择性)。
 -d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
 -s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
 -u  显示GMT。
 --help  在线帮助。

linux下编写脚本从ftp服务器定时下载文件相关推荐

  1. linux禁止客户端上传文件_Linux下Shell脚本实现FTP自动上传和下载文件

    概述 之前测试写的一个脚本,主要是为了实现FTP自动上传和下载文件.大家可以参考下: 基础环境配置 [root@pxzxdm01 ~]# useradd -d /home/ftp1 ftp1 [roo ...

  2. linux搭建ftp修改域名访问,linux下构建建设完美FTP服务器

    关键字:ubuntu linux Apache2 PHP5 Pure-FTPD pureftpd MySQL5 linux下构建建设完美FTP服务器,可管理,WEB管理,管理界面. ========= ...

  3. 怎么在linux下使用ftp服务器,怎么在Linux下建立安全的FTP服务器?

    怎么在Linux下建立安全的FTP服务器? 2018-08-31 15:53 分享人:老牛 学习Linux系统时,你可能会遇到网络服务的问题,这里将介绍linux FTP服务器安全及DHCP服务的实现 ...

  4. Linux使用SSH上传下载文件,Linux下通过ssh scp命令上传下载文件

    Linux下通过ssh scp命令上传下载文件. 1.上传本地文件到服务器 scp /path/filename username@servername:/path/ 例如 scp /var/tale ...

  5. Linux下使用vsftpd架设FTP服务器过程

    FTP可以通过很多软件实现,我们linux下面最常用的FTP服务器架设使用vsftpd软件 vsftpd 是一个基于GPL发布的FTP服务器软件.其中的vs是" Very Secure&qu ...

  6. shell脚本连接ftp推送文件夹_Linux下使用Shell脚本实现FTP自动上传和下载文件

    登录FTP实现下载文件功能 FTP服务器:192.168.0.199 FTP路径:/ftphome/data 本地路径:/local/data 将文件从FTP下载到本地的脚本如下: 批量下载脚本代码 ...

  7. Linux使用Shell脚本实现ftp的自动上传下载

    1. ftp自动登录批量下载文件. #####从ftp服务器上的/home/data 到 本地的/home/databackup#### #!/bin/bash ftp -n<<! ope ...

  8. linux 写脚本登录ftp,Linux使用Shell脚本实现ftp的自动上传下载-Go语言中文社区

    1. ftp自动登录批量下载文件. #####从ftp服务器上的/home/data 到 本地的/home/databackup#### #!/bin/bash ftp -n< open 192 ...

  9. 用手机访问计算机FTP服务器并下载文件

    测试网络 首先我们需要将电脑和手机连接在同一个WIFI下,然后用计算机尝试ping手机的IP地址: ping通了,说明在同一个网络下. 手机下载并设置AndFTP 在手机上的应用市场里搜索AndFTP ...

  10. linux新建备份数据库的脚本文件,Linux下shell脚本:自动每日备份网站文件和数据库上传FTP空间...

    前言 服务器.vps,难免会遇到各种问题,丢失数据,则必然痛心疾首啊!!! 数据无价,so建议养成定期备份的习惯!而且,要多备份几份,本地.网盘.FTP空间等,都多保存几份! 这里,就为大家带来一个l ...

最新文章

  1. Grafana + Zabbix --- 部署分布式监控系统
  2. 默认布局换行_自学整理 CSS Flex 布局
  3. Android Studio中关于9-patch格式图片的编译错误
  4. 用c#开发微信 (13) 微统计 - 阅读分享统计系统 3 UI设计及后台处理
  5. Canvas制作的下雨动画
  6. 桶排序算法c语言10个数组,桶排序算法
  7. RabbitMQ事务和Confirm发送方消息确认——深入解读
  8. CATIA 界面介绍
  9. java中集合类的转换_JAVA-常用集合类型转换例子(基础必备)
  10. (八)构建一个Docker容器来训练Deep Fake Autoencoders
  11. Kylin Cube构建优化
  12. 傲腾readyboost_从提示框:自动耳机音量调节,Compact Windows ReadyBoost和安全电话充电...
  13. Qt 5 编译 glm
  14. PR值是什么?pr值的意义
  15. 计算机关机键桌面,电脑关机快捷键是什么?
  16. Linux中vsftpd服务配置(匿名,用户,虚拟用户)
  17. UnityShader入门精要——运动模糊
  18. 汉堡包菜单_神圣的汉堡包!
  19. 安卓动态修改系统状态栏背景和文字颜色,以及动态显示或隐藏系统状态栏
  20. 自动定时执行键盘鼠标操作的工具软件(附完整VBS脚本) —— 定时执行专家

热门文章

  1. fpga学习之vga驱动
  2. 五款超级易用的网络监控软件
  3. 检测应用位于后台,并弹出手势解锁,解锁成功进入主界面
  4. 简易搜索引擎原理与基于Hadoop MapReduce的搜索引擎实现
  5. PADS中常用无模命令快捷键
  6. 基于微信电影播放小程序系统设计与实现 开题报告
  7. 有关String类与StringBuffer类
  8. 史玉柱加持,Playtika上市能否圆昔日“巨人”翻身梦?
  9. C语言因式分解的程序框图,C语言编写方案-因式分解
  10. matlab output()函数,matlab 函数y=f(input,output)该如何实现?