`
ducklsl
  • 浏览: 24790 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Linux定时的FTP上传任务

阅读更多
今天碰到一个需求是这样的:
要定时将linux服务器的数据库日志文件和数据库备份文件上传到FTP上。
问题分析:
1、服务器分为两台,一台服务器在公司总部机房,一台分公司机房;
2、公司总部服务器采用Linux操作系统,作为FTP客户端
3、分公司服务器用Windows 2008操作系统,并且安装了Server-U作为FTP服务器端
4、两台服务器相对互相都是在外网
5、防火墙已经做好端口的配置
首先,自己上网找了些关于Linux上传文件到FTP的shell脚本:
脚本如下:
backup_Ymd=`date +%Y-%m-%d`
echo "start time" $backup_Ymd
ftpServer=xxxxxxxxxxx(外网的域名)
ftpUser=username(FTP用户名)
ftpPasswd=password(FTP密码)
remoteDir=/mysql_log(FTP上存放目录)
localDir=/home/mysql/logs(本地目录)
/usr/kerberos/bin/ftp -niv <<!
open $ftpServer [port]
user $ftpUser $ftpPasswd
binary
cd $remoteDir
lcd $localDir
mput *.zip
bye
!

编写完脚本之后,执行此脚本,发现出现了一些异常情况:
start time 2013-08-1410
Connected to xxxxxxxxxxx.
220 Serv-U FTP Server v6.4 for WinSock ready...
500 'AUTH': command not understood.
500 'AUTH': command not understood.
KERBEROS_V4 rejected as an authentication type
Remote system type is UNIX.
Using binary mode to transfer files.
331 User name okay, need password.
230 User logged in, proceed.
200 Type set to I.
250 Directory changed to /mysql_log
Local directory now /home/mysql/logs
local: 2013-08-1007.zip remote: 2013-08-1007.zip
227 Entering Passive Mode (117,29,170,154,21,191)
ftp: connect: Connection timed out
221 Goodbye!

提示出现“227 Entering Passive Mode (117,29,170,154,21,191)”就出现连接超时的提示,无法传输文件。于是上网搜索此提示的相关信息,是连接模式选择不对,应当选用主动模式。所以,将FTP的pasv模式关闭即可!
#/bin/bash
backup_Ymd=`date +%Y-%m-%d`
echo "start time" $backup_Ymd
ftpServer=XXXXXXXXX
ftpUser=username
ftpPasswd=password
remoteDir=/mysql_log
localDir=/home/mysql/logs
/usr/kerberos/bin/ftp -niv <<!
open $ftpServer 29
user $ftpUser $ftpPasswd
passive #关闭被动模式
binary
cd $remoteDir
lcd $localDir
mput $backup_Ymd.zip
bye
!

注:
1、IE浏览器访问方式---------被动模式
2、Linux字符连接---------------被动模式
3、Windows字符连接---------主动模式

IE的设置只要在“工具------Internet选项-----高级-------使用被动FTP(去掉勾选)”
Linux下更改为主动连接的方式:
[root@localhost ~]# ftp XXXXXXXXX
Connected to XXXXXXXXXX.
220 Serv-U FTP Server v6.4 for WinSock ready...
500 'AUTH': command not understood.
500 'AUTH': command not understood.
KERBEROS_V4 rejected as an authentication type
Name (center.gouyundong.net:root): username     
331 User name okay, need password.
Password:
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (117,29,170,154,37,249)
ftp> passive
Passive mode off.
ftp> ls
200 PORT Command successful.


(补充Linux的Crontab的设置)
当脚本设置好,并且保存好后,就可以进入linux的crontab进行设置了。如果伙伴们不是很了解crontab的设置可以上网搜搜,或者查看crontab的帮助。

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

man crontab
或者
crontalb --help

进入crontab的设置:
crontab -e
30 7 * * * /usr/local/sbin/dblogsftp.sh
:wq
设置为每天的7点30分执行
注:可以通过日志目录查看脚本是否执行,而执行结果是否正确就得看你的的目的是否达到。当然在编写完脚本之后可以先测试是否可以执行,结果是否是自己想要的!
检查目录为:/var/log
文件为:cron
分享到:
评论

相关推荐

    定时ftp上传文件

    在IT行业中,定时FTP上传文件是一项常见的自动化任务,尤其对于监控、数据分析或者备份等场景尤为重要。这个任务涉及到几个关键知识点,下面将详细讲解。 首先,我们要理解“定时”这一概念。在计算机领域,定时...

    Java编写的linux下定时通过ftp上传文件

    3. **Linux定时任务**: - 在Linux中,我们可以使用`cron`来创建定时任务。在终端中,使用`crontab -e`命令编辑定时任务文件。 - 添加一条定时任务,例如每小时执行一次Java程序: ``` 0 * * * * java -jar /...

    ftp定时上传下载文件

    综上所述,实现FTP定时上传下载文件涉及多个技术层面,包括选择合适的FTP客户端库,编写执行FTP操作的脚本,设置定时任务,以及确保安全性和可靠性。理解这些知识点,就能构建出稳定可靠的FTP自动化解决方案。

    Linux+ftp+自动上传备份文件脚本

    本文主要涉及如何在Linux环境下使用FTP自动上传备份文件,并实现定期备份和清理策略。以下是详细的知识点解析: 1. **RMAN备份**: RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它可以创建数据库、...

    ftp文件定时传输,适合远程文件备份

    2. 定时任务:为了实现定时传输,我们需要利用操作系统提供的定时任务功能,如Windows的任务计划程序或Linux的Cron。这些工具允许我们将程序设置为在特定时间间隔执行,例如每天凌晨自动运行,以执行文件备份。 3. ...

    linux定时备份oracle自动上传 FTP

    2. **Linux定时任务(Cron)**: - 使用`crontab -e`命令编辑定时任务。在Oracle用户下,设定脚本`dbbak.sh`每天23:59执行一次,确保定时备份。 - `59 23 * * * /home/oracle/dbbak/shell/dbbak.sh`是cron表达式,...

    定时导出Oracle数据库数据并上传到FTP目录脚本

    在这个场景中,我们需要创建一个BAT脚本来实现从Oracle数据库定时导出数据,并通过FTP将这些数据上传到远程服务器。 首先,我们需要了解Oracle数据库的基本操作。Oracle提供了多种数据导出工具,如SQL*Plus的`spool...

    FileupdateFTP定时上传

    FTP定时上传则是通过编程或特定的FTP客户端软件设置,让系统在指定的时间点自动执行FTP上传任务,无需人工干预。 FTP定时上传的核心在于计划任务和FTP客户端。计划任务是操作系统提供的功能,可以设置在特定时间...

    linux自动备份文件 并上传到远程服务器 脚本实现

    4. **FTP上传:** 将新产生的备份文件通过FTP上传至远程服务器。 5. **定时任务设置:** 配置Cron定时任务,确保备份工作能够按时执行。 #### 实现步骤详解 ### 创建备份目录 首先,需要在本地服务器上创建一个...

    windows下定时利用bat脚本实现ftp上传下载

    通过上述步骤,不仅可以实现 Windows 系统下的定时 FTP 上传和下载功能,还可以根据实际需求灵活调整脚本和定时任务的配置,以满足不同的自动化需求。这对于日常的工作流管理和数据同步来说非常有用。

    ftp 自动上传文件到服务器

    - **cron(Linux)**:在Linux系统中,使用crontab命令编辑定时任务,定义特定时间执行FTP上传脚本。 - **Task Scheduler(Windows)**:在Windows系统中,使用任务计划程序设置定时任务,调用批处理文件或...

    Linux环境下部署FTP服务器并配置定时对FTP中的文件进行备份.pdf

    Linux 环境下部署 FTP 服务器并配置定时对 FTP 中的文件进行备份 本资源详细介绍了在 Linux 环境下部署 FTP 服务器并配置定时对 FTP 中的文件进行备份的步骤。FTP 服务器是文件传输协议服务器,允许用户通过网络...

    shell cron定时脚本 内附ftp上传 每天2点 定时导出数据 上传到指定目录

    在IT行业中,shell脚本和cron服务是Linux系统中常用的任务调度工具,用于自动化执行特定任务,例如在特定时间导出数据并将其上传至FTP服务器。在这个场景中,`unload.sh`是执行数据导出的shell脚本,而`cron.cron`则...

    定时任务(卸数,上传数据)

    在IT行业中,定时任务是一种非常重要的自动化工具,它允许我们预先设定特定的时间点或周期,自动执行特定的任务,如数据的卸载与上传。这里提到的"定时任务(卸数,上传数据)"是一个用于在服务器之间进行数据迁移的...

    FTP上传工具.rar

    7. **计划任务**:对于定期需要上传文件的情况,星宇FTP上传工具可能支持设置定时任务,按照预设的时间自动执行上传操作。 8. **日志记录**:为了便于追踪和调试,工具会记录上传活动,包括成功和失败的传输,用户...

    Linux自动备份MySQL数据库并上传到FTP服务器上shell脚本

    ### Linux自动备份MySQL数据库并上传到FTP服务器上Shell脚本详解 #### 一、脚本概述 本脚本主要用于在Linux环境下实现MySQL数据库的自动备份,并将备份文件上传至指定的FTP服务器。对于需要定期备份MySQL数据库的...

    自动定时上传文件xml

    操作系统(如Windows的任务计划程序或Linux的cron)提供了设置定时任务的能力,使得程序可以在预设的时间点自动执行。用户需要配置好触发时间、执行频率以及执行的操作。 2. **脚本编程**:为了实现自动上传,需要...

    FTP上传工具

    常见的FTP上传工具有FileZilla、WinSCP、Cyberduck等,它们都是开源或免费软件,适用于Windows、Mac OS和Linux等多种操作系统。FileZilla是其中最受欢迎的一款,以其易用性和强大的功能而闻名。 在使用FTP上传工具...

    自动备份Oracle并传输到远程FTP

    在实际应用中,这个脚本可以设置为定时任务,例如在Linux上使用cron job,以每天的固定时间自动执行,确保Oracle数据库的备份始终保持最新。 总结来说,实现“自动备份Oracle并传输到远程FTP”涉及的关键技术包括...

Global site tag (gtag.js) - Google Analytics