这几天数据库从windows平台的9I升级到linux平台的11G,因为EXP不支持高版本导出低版本,只好从本地导出再FTP传到新服务器上。文件比较大,传输时间长,所以找了几个脚本后台执行,晚上就可以好好回家休息了。^_^
样例1:手工上传文件
#>ftp
ftp>open 192.168.58.11
ftp>lcd /opt/GenEMS 进入本机目录/opt/GenEMS
ftp>mkdir tmp ftp上创建目录tmp
ftp>cd /tmp 进入远程ftp目录tmp
ftp>mput * 上传本机目录/opt/GenEMS的文件到ftp的当前目录
ftp>bin 以二进制传输,文件保持原样
ftp>mget * 从ftp当前目录下载文件到本机目录/opt/GenEMS
ftp>bye
样例2:后台运行从FTP服务器存取文件
1、首先建立两个文件,ftp_command,.netrc(放在登录用户/home/user/目录下)
ftp_command文件内容如下:(执行的命令)
bin
prompt
cd ????
mget ??????? ---修改为mput则为存文件。
bye
.netrc文件内容如下:(认证文件)
machine 140.117.11.3 login ftp password username@
如:oracle@swapdb:/orcl/dump>more /home/oracle/.netrc
machine 192.168.58.11 login anonymous password oracle@
注意: .netrc 文件的权限应为400. 修改:chmod 400 .netrc
<username@> 为你的 LoginUser ID 后加一个 @ 字符.
2、执行命令
nohup ftp 192.168.58.11 <ftp_command &
样例3:脚本方式后台运行,可以加入crontab实现定时存取文件
ftpcopy.sh脚本内容:
cd /home/oracle
ftp -n<<!
open 192.168.58.11
user username password
put abc.sh
close
bye
!
加入到corntab 里就可以了 nohup /home/oracle/ftpcopy.sh & 2>/dev/null 1>/dev/null
重要命令及相似命令:
(1) ?, help, remotehelp, rhelp:
help 显示 local 端的命令说明, 若不接命令则显示所有可用命令
? 相当于 help.e.g. ? cd (Enter)
rhelp 同 help, 除了他为显示 remote端.
remotehelp 相当于 rhelp.
(2) asc (ascii), bin (binary), image, type:
ascii 切换传输模式为文本模式.(只能用来传送 doc, 因为是 7-bit)
binary 切换传输模式为二进制模式. (除文本文件外皆用此模式)
image 相当于 binary.
type 让你更改或显示目前传输模式.
(3) bye, quit:
bye 退离 ftp.
quit 相当于 bye.
(4) cd, cdup, lcd, pwd, !:
cd 改变目前工作目录(change directory). e.g. cd /pub (Enter)
cdup 回到上一层目录, 相当于你打 cd .. (Enter)
lcd 让你更改或显示 local端的工作目录. e.g. lcd /tmp (Enter)
pwd 显示目前的工作目录.(remote 端)
! 让你执行 shellcommand. e.g. !ls (Enter)
(5) delete, mdelete, rename:
delete 删除 remote 端的文件.
mdelete 集体(大量)删除文件, 需配合通配符.
rename 更改 remote 端的文件名.
(6) get, mget, put, mput, recv, send:
get 抓取(下传)文件.
mget 集体(大量)抓取文件, 需配合通配符. e.g. mget *.gz
put 丢放(上传)文件.
mput 集体(大量)丢放文件, 需配合通配符.
recv 相当于 get. (receive)
send 相当于 put.
(7) hash, prompt, verbose, status, bell:
hash 切换 # 字号的出现. 每一个 # 字号表示每传送了1024/8192 bytes.
prompt 切换Interactive on/off. e.g. 当 mget * , on/off 确定传档.
verbose 切换所有文件传输过程的显示.
status 显示目前的一些参数.
bell 切换哔哔声,当指令做完时会发出一声...beep!
(8) ls, dir, mls, mdir, mkdir, rmdir:
ls 有点像 UNIX 下的 ls (list) 命令.
dir 相当 ls -l(list -long).
mls 只是将 remote 某目录下的东东存在local 端的某文件里.
mdir 相当于 mls, 但资料较丰.
mkdir 像 UNIX 下的 mkdir 一般. (make directory)
rmdir 像 UNIX 下的 rmdir 一般. (remove directory)
(9) open, close, disconnect, user:
open 开一个connection 到某个 remote ftp host.
close 关闭目前的connection.
disconnect 相当于 close.
user 再输入一次username 和 password. (有点像 UNIX 的 su)