owncloud-基于rockylinux8数据库备份和文件同步备份
目录
1.环境描述
|
序号 |
主机名 |
主机IP |
操作系统版本 |
数据库版本 |
|
1 |
owncloud |
10.9.254.59 |
rockylinux8.6 |
MariaDB10.3.35 |
|
2 |
owncloudbak |
10.9.254.60 |
rockylinux8.7 |
2.mysql数据库备份
2.1配置数据库备份脚本
|
[root@owncloud ~]# mkdir -p /var/www/owncloud/mysqlbak/script [root@owncloud ~]# mkdir -p /var/www/owncloud/mysqlbak/databak [root@owncloud ~]# vim /var/www/owncloud/mysqlbak/script/mysql_backup.sh |
|
#!/bin/bash #完成数据库的定时备份 #备份的路径 需要提前建好 BACKUP=/var/www/owncloud/mysqlbak/databak #当前的时间作为文件名 DATETIME=$(date +%Y_%m_%d_%H%M%S) #可以输出变量调试 #echo ${DATETIME} echo "==========开始备份===========" echo "备份的路径是 $BACKUP/$DATETIME.tar.gz" #主机 HOST=localhost #用户名 DB_USER=root #密码 DB_PWD=P@88w0rd #备份数据库名 DATABASE=owncloud #创建备份的路径 #如果备份的路径文件夹存在就使用,否则创建 [ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME" #执行mysql的备份数据库的指令 mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz #打包备份文件 cd $BACKUP tar -zcvf $DATETIME.tar.gz $DATETIME #删除临时目录 rm -rf $BACKUP/$DATETIME #删除7天前的备份文件(-exec rm -rf {} \是固定写法,删除查询出来的数据) find $BACKUP -mtime +7 -name "*.tar.gz" -exec rm -rf {} \; echo "==========备份完成===========" #备份脚本截图如下:
|
|
[root@owncloud ~]# chmod +x /var/www/owncloud/mysqlbak/script/mysql_backup.sh [root@owncloud ~]# sh /var/www/owncloud/mysqlbak/script/mysql_backup.sh |
|
==========开始备份=========== 备份的路径是 /var/www/owncloud/mysqlbak/databak/2025_02_25_110508.tar.gz 2025_02_25_110508/ 2025_02_25_110508/2025_02_25_110508.sql.gz ==========备份完成=========== |
|
[root@owncloud ~]# ll /var/www/owncloud/mysqlbak/databak/ |
|
-rw-r--r-- 1 root root 7245458 Feb 25 11:05 2025_02_25_110508.tar.gz |
2.2配置数据备份计划任务
|
[root@owncloud ~]# crontab -e |
|
* 1 * * * /var/www/owncloud/mysqlbak/script/mysql_backup.sh |
|
[root@owncloud ~]# systemctl enable crond --now |
3.配置rsync实时同步
3.1目标服务器配置
|
[root@owncloudbak ~]# yum -y install rsync rsync-daemon |
|
Installed: rsync-3.1.3-20.el8_10.x86_64 Complete! |
|
[root@owncloudbak ~]# mkdir -p /data/owncloud/10-9-254-59/owncloud [root@owncloudbak ~]# ll /data/owncloud/ |
|
drwxr-xr-x 2 root root 6 Feb 25 13:40 10-9-254-59 |
|
[root@owncloudbak ~]# vim /etc/rsyncd.conf |
|
uid = nobody gid = nobody use chroot = yes max connections = 0 strict mode=yes pid file = /var/run/rsyncd.pid lock file=/var/run/rsync.lock log file=/var/log/rsyncd.log [10-9-254-59] path = /data/owncloud/10-9-254-59/owncloud comment = yunweibu ignore errrors read only=no write only=no hosts allow=10.9.254.59 hosts deny=* list=false uid=root gid=root auth users=rsync-owncloud secrets file=/etc/rsync.password |
|
[root@owncloudbak ~]# vim /etc/rsyncd.password |
|
rsync-owncloud:P@88w0rd |
|
[root@owncloudbak ~]# chmod 600 /etc/rsyncd.password [root@owncloudbak ~]# systemctl restart rsyncd [root@owncloudbak ~]# systemctl enable rsyncd [root@owncloudbak ~]# ss -autnpl | grep rsync |
|
tcp LISTEN 0 5 0.0.0.0:873 0.0.0.0:* users:(("rsync",pid=408392,fd=4)) tcp LISTEN 0 5 [::]:873 [::]:* users:(("rsync",pid=408392,fd=5)) |
如果有防火墙开放873端口
|
[root@owncloudbak ~]# firewall-cmd --add-port=873/tcp --permanent --zone=public |
|
success |
|
[root@owncloudbak ~]# firewall-cmd --reload |
|
success |
3.2源数据服务器配置
3.2.1安装rsync
|
[root@owncloud ~]# yum -y install rsync rsync-daemon [root@owncloud ~]# vim /etc/rsync.password |
|
P@88w0rd |
|
[root@owncloud ~]# chmod 600 /etc/rsync.password [root@owncloud ~]# systemctl restart rsyncd [root@owncloud ~]# systemctl enable rsyncd |
如果有防火墙开放873端口
|
[root@owncloudbak ~]# firewall-cmd --add-port=873/tcp --permanent --zone=public |
|
success |
|
[root@owncloudbak ~]# firewall-cmd --reload |
|
success |
测试同步
|
[root@owncloud ~]# rsync -avH --port 873 --delete /var/www/owncloud/ rsync-owncloud@10.9.254.60::10-9-254-59 --password-file=/etc/rsync.password |
|
等待文件同步完成 |
3.2.2安装inotify
max_queued_events:inotify事件队列最大长度,如值太小会出现Event Queue Overflow错误,默认值16384,生产环境建议调大,比如:327679
max_user_instances:每个用户创建inotify实例最大值,默认值:128
max_user_watches:可以监视的文件的总数量(inotifywait单进程),默认值:8192,建议调大
|
[root@owncloud ~]# ls /proc/sys/fs/inotify/ |
|
max_queued_events max_user_instances max_user_watches #显示以上三个文件则表明支持inotify |
|
[root@owncloud ~]# echo 1000000 > /proc/sys/fs/inotify/max_queued_events [root@owncloud ~]# cat /proc/sys/fs/inotify/max_queued_events |
|
1000000 |
|
[root@owncloud ~]# vim /etc/sysctl.conf |
|
fs.inotify.max_queued_events=66666 fs.inotify.max_user_watches=100000 |
|
[root@owncloud ~]# sysctl -p |
|
fs.inotify.max_queued_events = 66666 fs.inotify.max_user_watches=100000 |
|
[root@owncloud ~]# cat /proc/sys/fs/inotify/max_queued_events |
|
66666 |
|
[root@owncloud ~]# cat /proc/sys/fs/inotify/max_user_watches |
|
100000 |
|
[root@owncloud ~]# uname -a |
|
Linux owncloud 4.18.0-372.26.1.el8_6.x86_64 #1 SMP Tue Sep 13 18:09:48 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux |
|
[root@owncloud ~]# grep -i inotify /boot/config-4.18.0-372.26.1.el8_6.x86_64 |
|
CONFIG_INOTIFY_USER=y |
|
[root@owncloud ~]# yum search inotify-tools |
|
Last metadata expiration check: 0:28:13 ago on Tue 25 Feb 2025 02:25:05 PM CST. ============================================================ Name Exactly Matched: inotify-tools ============================================================ inotify-tools.x86_64 : Command line utilities for inotify ================================================================ Name Matched: inotify-tools ================================================================ inotify-tools-devel.x86_64 : Headers and libraries for building apps that use libinotifytools |
|
[root@owncloud ~]# yum -y install inotify-tools inotify-tools-devel |
|
Installed: inotify-tools-3.14-19.el8.x86_64 inotify-tools-devel-3.14-19.el8.x86_64 Complete! |
|
[root@owncloud /]# mkdir /scripts && vim /scripts/inotifyrsync.sh |
|
#!/bin/bash # Defined parameter #目标服务器的ip地址 host01=10.9.254.60 #本地监控的目录 src=/var/www/owncloud #目标服务器的rsync模块名 dst01=10-9-254-59 #目标服务器的rsync服务的虚拟用户 user01=rsync-owncloud #本地调用的rsync服务的密码文件 rsync_passfile01=/etc/rsync.password /usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib $src \ | while read files do /usr/bin/rsync -vzrtopg --delete --progress --password-file=$rsync_passfile01 $src $user01@$host01::$dst01 > /dev/null 2>&1 echo "${files} was rsynced." >> /tmp/rsync.log 2>&1 done #脚本截图如下:
|
|
[root@owncloud /]# chmod 755 /scripts/inotifyrsync.sh |
3.3执行同步命令并检查
源数据服务器执行
|
[root@owncloud /]# /scripts/inotifyrsync.sh & [root@owncloud ~]# vim /etc/rc.local |
|
touch /var/lock/subsys/local /scripts/inotifyrsync.sh & |
手动在源数据服务器创建文件,查看目标服务器上是否实时同步。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)