利用rsync定時備份ftp服務器


第一章 概述

1.1 需求背景:

現有倉內存儲硬件為戴爾I5辦公台式機,存儲設備為奧瑞科磁盤陣列櫃,可以設置raid5磁盤陣列,目前存在以下問題,當磁盤陣列或同時損壞2塊硬盤時,數據會
丟失,對公司造成財產損失,故對其進行升級

1.2 需求概述:

實現視頻服務器數據定時備份至備份服務器,用戶可上傳下載文件,不可刪除,視頻文件保留90天,將90天以前的文件進行刪除,並郵件反饋結果

1.3 網絡規划

FTP服務器:
10.30.31.240 /data/ftp240
備份服務器:
10.30.31.241 /data/ftp241

1.4 硬件規划

FTP服務器:DELL R730 
 OS:CentOS Linux release 7.5.1804 
 系統盤500G
 存儲規划:4T企業級硬盤*5 raid5

備份服務器:DELL R320 
 OS:CentOS Linux release 7.5.1804 
 系統盤500G
 存儲規划:4T企業級硬盤*5 raid5

1.5 實現思路

兩台服務器上配置raid5陣列,安裝centos7.5服務
240服務器上安裝ftp服務,ftp目錄/data/ftp240,虛擬用戶alog1----alog1122 ok
241服務器上以守護進程的方式配置sync服務,備份目錄:/data/ftp241
240服務器安裝rsync服務,數據目錄:/data/ftp240
240服務器上編寫備份文件腳本,每天凌晨1點進行備份,並將90天之前的文件進行刪除
241服務器上編寫腳本,利用md5sum進行結果校驗,並將備份的結果進行郵件反饋,將90天之前文件進行刪除

第二章 系統安裝

2.1 DELL R730安裝centos7

2.11 raid配置

raid配置(ctrl+r)----磁盤初始化

2.12 系統安裝

2.13 磁盤分區掛載

磁盤使用三個步驟:分區-格式化-掛載 gdisk-mkfs-mount

[root@db01:~]# fdisk -- n -- w
[root@db01:~]# mkfs.xfs /dev/sda

[root@db01:~]# lsblk -d
[root@db01:~]# lsblk -f

啟動自動掛載可參考/etc/fatab之設置,設置完畢務必使用mount -a 測試語法是否正確;
[root@db01:~]# mount /dev/sda /data

[root@db01:~]# df -Th

[root@db01:~]# vim /etc/fstab
/dev/sda                /data                   xfs     defaults        0 0
[root@db01:~]# mount -a
[root@db01:~]# vim /etc/rc.local
mount /dev/sda /data

第三章 FTP服務配置部署

3.1 安裝vsftpd

yum install -y vsftpd
若安裝失敗,可以手動下載yum源
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6*.rpm

3.2 創建本地用戶

作用:用於映射虛擬用戶,所有虛擬用戶都會映射到此用戶后對文件系統進行讀寫操作

#創建ftp用戶目錄
mkdir -p /data/ftp240
#chmod -R 755 /data/ftp240待定
useradd -d /data/ftp240 -s /sbin/nologin virftp
chown -R virftp:virftp /data/ftp240

3.3 創建虛擬用戶[用戶和密碼]文件

vim /etc/vsftpd/vuser-list
alog1
alog112

3.4 加密用戶密碼文件生成數據庫文件

yum -y install libdb-utils
db_load -T -t hash -f /etc/vsftpd/vuser-list /etc/vsftpd/vuser-list.db
chmod 600 /etc/vsftpd/vuser-list.db

3.5 創建PAM認證文件

#將auth及account的所有配置行均注釋掉,添加如下兩行
vim /etc/pam.d/vsftpd
auth                 required     pam_userdb.so   db=/etc/vsftpd/vuser-list 
account              required     pam_userdb.so   db=/etc/vsftpd/vuser-list

3.6 修改主配置文件

vim /etc/vsftpd/vsftpd.conf

#禁止匿名用戶登錄
anonymous_enable=NO
#允許本地用戶登錄
local_enable=YES
#啟用虛擬賬戶 
guest_enable=YES
#把虛擬賬戶映射到系統賬戶virftp               
guest_username=virftp
#使用虛擬用戶驗證(PAM驗證)
pam_service_name=vsftpd
#設置存放各虛擬用戶配置文件的目錄(此目錄下與虛擬用戶名相同的文件為他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#啟用chroot時,虛擬用戶根目錄允許寫入
allow_writeable_chroot=YES
chroot_local_user=YES
#禁刪
cmds_denied=DELE,RMD

3.7 創建虛擬用戶[權限]配置文件

權限示例1:所有權限

# mkdir -p /etc/vsftpd/vsftpd_viruser/
# vim /etc/vsftpd/vsftpd_viruser/alog1
# 允許寫入
write_enable=YES
#允許瀏覽FTP目錄和下載
anon_world_readable_only=NO
# 允許虛擬用戶上傳文件
anon_upload_enable=YES
# 允許虛擬用戶創建目錄
anon_mkdir_write_enable=YES
# 允許虛擬用戶執行其他操作(如改名、刪除)
anon_other_write_enable=YES
# 上傳文件的掩碼,如022時,上傳目錄權限為755,文件權限為644
anon_umask=022
# 指定虛擬用戶的虛擬目錄(虛擬用戶登錄后的主目錄)
local_root=/data/ftp240

權限示例2:只有上傳下載的權限

local_root=/data/ftp/alog2
anon_upload_enable=yes
anon_world_readable_only=no

3.8 更改虛擬用戶目錄權限[略]

#如果不更改的話,匿名用戶是可以訪問到的
chmod 700 /data/ftp240/alog1 

3.9 訪問測試

啟動vsftp

systemctl restart vsftpd
systemctl enable vsftpd

第四章 Rsync服務配置

241備份服務器配置:
1,安裝rsync

#yum install -y rsync

2,編輯配置文件

#vim /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 10.0.0.0/24 
hosts deny = 0.0.0.0/32 
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /data/ftp240_bak

3,用戶及目錄配置

useradd rsync -M -s /sbin/nologin
mkdir -p /data/ftp240_bak 
chown -R rsync.rsync /data/ftp240_bak
chmod -R 755 /data/ftp240_bak
echo "rsync_backup:backup@123"  >>/etc/rsync.password
chmod 600 /etc/rsync.password

4,啟動rsync服務

systemctl start rsyncd
systemctl enable rsyncd

240FTP服務器配置:

echo "backup@123" >/etc/rsync.password
chmod 600 /etc/rsync.password

#測試
rsync -avz /etc/hostname rsync_backup@10.0.0.241::backup --password-file=/etc/rsync.password

第五章 腳本編寫

240FTP服務器上編寫腳本[此處用法1]
方法一:

# mkdir -p /server/scripts/
# vim /server/scripts/ftp240.sh
#!/bin/bash

Backup_dir="/data/ftp240"

find $Backup_dir -type f -name "*.mp4" -mtime +90|xargs rm -rf 2>/dev/null
find $Backup_dir/ -type f -mtime -1 ! -name "finger*"|xargs md5sum >$Backup_dir/finger.txt
rsync -aqrtopg --delete  $Backup_dir/ rsync_backup@10.0.0.241::backup --password-file=/etc/rsync.password

方法二:

#!/bin/bash

Backup_dir="/data/ftp240"
cd $Backup_dir
find ./ -type f -name "*.mp4" -mtime +90|xargs rm -rf 2>/dev/null
find ./ -type d |xargs rmdir -p 2>/dev/null
find ./ -type f -mtime -1 ! -name "finger*"|xargs md5sum >./finger.txt
rsync -aqrtopg --delete  $Backup_dir/ rsync_backup@10.0.0.241::backup --password-file=/etc/rsync.password

241備份服務器上編寫腳本


# mkdir -p /server/scripts/
# vim /server/scripts/ftp241.sh
#!/bin/bash
# check backup data ,md5sum -c根據已生成的md5值,對文件進行校驗>,MD5文件與待驗證的文件在同一個目錄中 
sed -i 's/ftp240/ftp240_bak/g' /data/ftp240_bak/finger.txt
find /data/ftp240_bak -type f -name "finger.txt"|xargs md5sum -c >/tmp/md5check.txt
n1=`grep -i -c 'OK' /tmp/md5check.txt`
n2=`grep -i -c 'FAILED' /tmp/md5check.txt`

echo -e  "備份成功數量:$n1\n備份失敗數量:$n2" >/tmp/check.txt

# send check mail 
mail -s "check backup info for $(date +%F -d -"1day") data" nishi1281@163.com </tmp/check.txt 

第六章 定時任務

240FTP服務器上設置定時任務

crontab -e
# backup data
0 1 * * * /bin/bash /server/scripts/ftp240.sh &>/dev/null

241FTP服務器上設置定時任務

crontab -e
#check backup data
0 9 * * * /bin/bash /server/scripts/ftp241.sh &>/dev/null 
##服務端的定時任務時間會比客戶端稍晚一些,為的是客戶端有充足的時間將待備份文件傳輸完

第七章 備份服務器郵件發送實現

配置163企業郵箱

編寫linux服務郵件相關配置文件

# yum install mailx

# vim /etc/mail.rc
在最后一行新增如下內容:
set from=nishi1281@163.com 
set smtp=smtp.163.com 
set smtp-auth-user=nishi1281@163.com 
set smtp-auth-password=MWACMDQLDUHYAAZTOM  //授權碼
set smtp-auth=login
重啟服務加載文件:

# systemctl restart postfix.service
第三步 發送郵件測試

[root@backup~]# echo "郵件發送測試"|mail -s "郵件測試" 906288036@qq.com
[root@backup~]# mail -s "郵件測試" 906288036@qq.com </etc/hosts

第八章 磁盤監控告警


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM