共计 3760 个字符,预计需要花费 10 分钟才能阅读完成。
CentOS 6.4 下定时通过 ftp 获取数据库服务器上的文件并且删除远程目录里面的文件。
步骤
1,编写 sh 脚本,实现每天 23:20 从另一台服务器上获取数据库备份文件
# vi getfromftp.sh
内容:
#!/bin/bash #声明改文件为 sh 脚本可执行文件
datesign=`date +”%Y%m%d”` #获取当天的日期
ftp -i -n -v <<! #执行 ftp 命令
open 10.160.3.201 #ip
user Oracle oracle #用户名 密码
binary #以字节传输
cd /home/oracle/backup/data #切换远程目录
lcd /root/backup/data #切换本地目录
#mget $datesign.dmp
delete $datesign.dmp
bye
!
2,在 root 用户下添加系统定时任务
# crontab -e
20 23 * * * getfromftp.sh
附录:
FTP 的命令行格式为:
ftp -v -d -i -n -g [主机名],其中
-v 显示远程服务器的所有响应信息;
-n 限制 ftp 的自动登录,即不使用;.n etrc 文件;
-d 使用调试方式;
-g 取消全局文件名。
FTP 使用的内部命令如下(中括号表示可选项):
1.![cmd[args]]:在本地机中执行交互 shell,exit 回到 ftp 环境,如:!ls*.zip
2.$ macro-ame[args]:执行宏定义 macro-name。
3.account
此处含有隐藏内容,需要正确输入密码后可见!
:提供登录远程系统成功后访问系统资源所需的补充口令。
4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
5.ascii:使用 ascii 类型传输方式。
6.bell:每个命令执行完毕后计算机响铃一次。
7.bin:使用二进制文件传输方式。
8.bye:退出 ftp 会话过程。
9.case:在使用 mget 时,将远程主机文件名中的大写转为小写字母。
10.cd remote-dir:进入远程主机目录。
11.cdup:进入远程主机目录的父目录。
12.chmod mode file-name:将远程主机文件 file-name 的存取方式设置为 mode,如:chmod 777 a.out。
13.close:中断与远程服务器的 ftp 会话 (与 open 对应)。
14.cr:使用 asscii 方式传输文件时,将回车换行转换为回行。
15.delete remote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3,若设为 0,表示取消 debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件
18.disconnection:同 close。
19.form format:将文件传输方式设置为 format,缺省为 file 方式。
20.get remote-file[local-file]:将远程主机的文件 remote-file 传至本地硬盘的 local-file。
21.glob:设置 mdelete,mget,mput 的文件名扩展,缺省时不扩展文件名,同命令行的 - g 参数。
22.hash:每传输 1024 字节,显示一个 hash 符号(#)。
23.help[cmd]:显示 ftp 内部命令 cmd 的帮助信息,如:help get。
24.idle[seconds]:将远程服务器的休眠计时器设为[seconds] 秒。
25.image:设置二进制传输方式 (同 binary)。
26.lcd[dir]:将本地工作目录切换至 dir。
27.ls[remote-dir][local-file]:显示远程目录 remote-dir,并存入本地文件 local-file。
28.macdef macro-name:定义一个宏,遇到 macdef 下的空行时,宏定义结束。
29.mdelete[remote-file]:删除远程主机文件。
30.mdir remote-files local-file:与 dir 类似,但可指定多个远程文件,如:mdir *.o.*.zipoutfile。
31.mget remote-files:传输多个远程文件。
32.mkdir dir-name:在远程主机中建一目录。
33.mls remote-file local-file:同 nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为 modename,缺省为 stream 方式。
35.modtime file-name:显示远程主机文件的最后修改时间。
36.mput local-file:将多个文件传输至远程主机。
37.newer file-name:如果远程机中 file-name 的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的 local-file。
39.nmap[inpattern outpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmap
$1.$2.$3[$1,$2].[$2,$3],则传输文件 a1.a2.a3 时,文件名变为 a1,a2。
该命令特别适用于远程主机为非 UNIX 机的情况。
40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如 ntrans1R,则文件名 LLL 将变为 RRR。
41.open host[port]:建立指定 ftp 服务器连接,可指定连接端口。
42.passive:进入被动传输方式。
43.prompt:设置多个文件传输时的交互提示。
44.proxy ftp-cmd:在次要控制连接中,执行一条 ftp 命令,该命令允许连接两个 ftp 服务器,以在两个服务器间传输文件。第一条 ftp 命令必须为 open,以首先建立两个服务器间的连接。
45.put local-file[remote-file]:将本地文件 local-file 传送至远程主机。
46.pwd:显示远程主机的当前工作目录。
47.quit:同 bye,退出 ftp 会话。
48.quote arg1,arg2…:将参数逐字发至远程 ftp 服务器,如:quote syst.
49.recv remote-file[local-file]:同 get。
50.reget remote-file[local-file]:类似于 get,但若 local-file 存在,则从上次传输中断处续传。
51.rhelp[cmd-name]:请求获得远程主机的帮助。
52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。
53.rename[from][to]:更改远程主机文件名。
54.reset:清除回答队列。
55.restart marker:从指定的标志 marker 处,重新开始 get 或 put,如:restart 130。
56.rmdir dir-name:删除远程主机目录。
57.runique:设置文件名只一性存储,若文件存在,则在原文件后加后缀.1,.2 等。
58.send local-file[remote-file]:同 put。
59.sendport:设置 PORT 命令的使用。
60.site arg1,arg2…:将参数作为 SITE 命令逐字发送至远程 ftp 主机。
61.size file-name:显示远程主机文件大小,如:site idle 7200。
62.status:显示当前 ftp 状态。
63.struct[struct-name]:将文件传输结构设置为 struct-name,缺省时使用 stream 结构。
64.sunique:将远程主机文件名存储设置为只一(与 runique 对应)。
65.system:显示远程主机的操作系统类型。
66.tenex:将文件传输类型设置为 TENEX 机的所需的类型。
67.tick:设置传输时的字节计数器。
68.trace:设置包跟踪。
69.type[type-name]:设置文件传输类型为 type-name,缺省为 ascii,如:type binary,设置二进制传输方式。
70.umask[newmask]:将远程服务器的缺省 umask 设置为 newmask,如:umask 3
71.user user-name
此处含有隐藏内容,需要正确输入密码后可见!
[account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
72.verbose:同命令行的 - v 参数,即设置详尽报告方式,ftp 服务器的所有响 应都将显示给用户,缺省为 on.
73.?[cmd]:同 help.
更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14