Contents
3.47. 远程操作ftp进行上传和下载¶
3.47.1. 自动下载指定文档¶
#!/usr/bin/env bash
#usage:xxx
#scripts_name:xxx.sh
# author:xiaojian
#自动下载指定文档
#编写一个Shell程序,自动登录到远端ftp服务器
#192.168.20.122,自动下载/etc/rc.d目录下的rc.local文件。登录服务器时
#使用的用户名为teacher,密码为654321,采用二进制传输模式,且在下
#载时利用哈希显示下载进度。在此例中需要使用ftp的一些常用内部命
#令,如bin、hash、get、bye等
echo "open 192.168.20.121
user teacher 654321
bin
hash
cd /etc/rc.d
get rc.local
bye
"| ftp -n # 管道|表示将echo命令的输出,输入到ftp命令。-n表示不允许自动登录
#bin 表示采用二进制模式传输
#hash 表示进行哈希,即以符号#表示传输的进度
3.47.2. 自动上传指定文档¶
#!/usr/bin/env bash
#usage:xxx
#scripts_name:xxx.sh
# author:xiaojian
#例如,编写一个Shell程序对系统的重要资源进行备份,备份内容包
#括:
#(1)系统配置文件,即/etc/rc.d目录中的所有文件。
#(2)/etc目录下的所有配置文件,即.conf文件。
#(3)系统日志文件,即/var/log目录中的所有文件。
#备份后,将备份文件通过ftp传输到远端主机192.168.20.122上,且
#登录ftp的用户名为teacher、密码为654321。ftp连接采用二进制传输模
#式,显示上传进度及提示信息。
#通过编写任务定时器,设定每周一的0:00自动执行编写的程序实现
#备份及上传操作。在此例中将用到read、echo、tar、crontab等语句
DIR="/backup-sys"
#创建目录/backup-sys,其中-p表示目录存在时不报错
mkdir -p $DIR
if [ $? -eq 0 ]; then
tar zcvf ${DIR}/rc.tar.gz /etc/rc.d
tar zcvf ${DIR}/conf.tar.gz /etc/*.conf
tar zcvf ${DIR}/log.tar.gz /var/log
cd $DIR
if [ $? -eq 0 ]; then
echo "open 192.168.1.121
user teacher 654321
binary
prompt
hash
mput *
bye
"| ftp -n
else
echo "Could not into $DIR directory!"
fi
else
echo "Cloud not create backup directory!"
fi
#实现每周一0:00定时自动备份及上传操作,需要进一步编写任务定时器。
# 1 0 * * mon /usr/bin/env bash backup_ftp.sh