自动用shell脚本备份文件并存放在ftp服务器上

时间:2022-02-17 14:06:55

所用知识点
shell脚本编写基础知识,crontab命令

首先试验环境
FTP服务器:192.168.2.129
备份服务器:192.168.2.128

首先备份服务器应该和FTP服务器能通
在备份服务器上安装ftp客户端
在备份服务器上编写脚本

 1 #!/bin/bash
 2 #this is back shell
 3 DATE=$(date +%Y-%m-%d)
 4 #设置备份格式为当日日期
 5 FTPSERVERIP=192.168.2.129
 6 #设置FTP服务器
 7 FTPUSER="aaa"
 8 #登录FTP的用户名
 9 FTPPASSWORD="bbb"
10 #登录FTP的密码
11 SRC="/etc"
12 #设置备份的目录
13 DST=“$DATE.tgz”
14 #这是备份的名字
15 tar -zcvf $DST $SRC >/dev/null#
16 #备份目录
17 ftp -nvi << !
18 open $FTPSERVERIP
19 user $FTPUSER $FTPPASSWORD
20 put $DST
21 bye
22 #上传到FTP服务器

执行过程

 1 [root@666 ~]# ./back.sh 
 2 tar: Removing leading `/' from member names
 3 ./back.sh: line 20: warning: here-document at line 16 delimited by end-of-file (wanted `!')
 4 Connected to 192.168.2.129 (192.168.2.129).
 5 220 (vsFTPd 2.2.2)
 6 331 Please specify the password.
 7 230 Login successful.
 8 local: 20181209.tgz remote: 20181209.tgz
 9 227 Entering Passive Mode (192,168,2,129,102,176).
10 150 Ok to send data.
11 226 Transfer complete.
12 11009172 bytes sent in 0.217 secs (50818.05 Kbytes/sec)
13 221 Goodbye.

上传成功

1 [root@centos1 ftp]# ls
2 20181209.tgz
3 [root@centos1 ftp]# ll
4 总用量 10752
5 -rw-r--r--. 1 aaa aaa 11009172 1月   9 20:29 20181209.tgz

设置定时启动脚本

crontab -e
59 23  * * 7 /root/back.sh
#每周天23日59分执行一次脚本