‘壹’ suse 的 b shell 脚本中怎么写 ftp 命令
重点是这一句:ftp -v -i -n 218.200.245.84</home/mediation/config.billing>>/home/mediation/log/ftpcdr.log
从这一句看出所有的FTP命令都是从“/home/mediation/config.billing”此文件中读取的,所以你要的FTP命令都在这个文件中。
‘贰’ 编译一个shell脚本,ftp到主机 新建目录 拷贝文件 删除目录 退出
首先,陪首脚本并不需要知道本身所在主机的IP,所以,用不到10.10.141.91这个源地址。
再次,ftp命令中不支持直接在服务器端新建文件,只能先在本地源裂新建后上传。其实,ftp客户端软件,如CuteFTP也都是这么做的,只是你觉察不到。
#!/bin/bash
host="10.10.142.72"
username="xxxx"
#这里写你的FTP登录用户名
password="xxxxxxx"
#这里写你的FTP登录密码
file1="testexam1"
file2="testexam2"
touch
$file1
touch
$file2
(
ftp
-ni
$host
<<EOF
quote
USER
$username
quote
PASS
$password
cd
/home/query
#切换服务器目录
binary
put
$file1
put
$file2
lcd
/home/query
#切换本雹乱闭地目录
get
$file1
delete
$file1
bye
EOF
)
>/dev/null
2>err.log
‘叁’ Linux shell 脚本ftp传输文件
ftp xxxxftp服务器埋局
put命令上传
或者
输入乱氏ftp
执行open xxxftp服务器
然后 再执行
put命令上哗液散传。
‘肆’ shell脚本ftp到远程目录
1.下载远态野程电信机房中机器帆凳喊上已打包好的数据.这个不难,一条语句搞定.
复制代码代码如下:
wget
ftp://user_name:password@ip_address:port/dir/file_name
2.定时任务,需要写个脚本,并加入定时任务粗肢中.
a.脚本.假设你计划将远程的文件备份到/var/www/html/back目录下,到这个目录下,新建文件,内容如下
复制代码代码如下:
!#/bin/sh
cd
/var/www/html/back/
wget
ftp(上面那条语句)
保存为bak.sh
b.加入定时任务.直接vi
/etc/crontab
在最后一行加入如下语句
复制代码代码如下:
30
18
*
*
*
root
/var/www/html/back/bak.sh(脚本保存的位置)
这样每天下午6:30本地的centos机器自动会将远程FTP的文件备份到/var/www/html/back中了.
‘伍’ shell脚本中ftp连接
对,$?仅表示森碧物上一个命令ftp成功与否。
无法判断远程文件是否存在,只能通过判断本地文件大小来得知。此液
若远程文件不存在,则慧返FTP获取到本地会产生一个0字节大小的文件(用 wc -c 获取文件字节数,并与0比较即可),也可能就没有产生文件(用test表达式 [ -e $save_name ] 来判断)。
无法判断具体是什么问题,只能得知一个结果:FTP获取文件失败。
--------------------------------------------------------------------------------------------
根据你自己的情况来判断。那就用 [ -e $save_name ] 判断本地文件是否存在。
--------------------------------------------------------------------------------------------
-e 判断文件是否存在(exist),-f 判断这个“文件”是否为文件(file)