做网站 花时间,百度快照推广排名,宁波搭建网站公,网站架构模板文章目录 一、Docker镜像制作二、MySQL数据备份三、Minio数据备份四、数据跨服务器传输五、Nginx日志分割六、Docker启动七、Docker备份日志 一、Docker镜像制作
镜像制作目录 mc下载地址 - rsyncd.conf
# https://download.samba.org/pub/rsync/rsyncd.conf.5port 873
uid … 文章目录 一、Docker镜像制作二、MySQL数据备份三、Minio数据备份四、数据跨服务器传输五、Nginx日志分割六、Docker启动七、Docker备份日志 一、Docker镜像制作
镜像制作目录 mc下载地址 - rsyncd.conf
# https://download.samba.org/pub/rsync/rsyncd.conf.5port 873
uid nobody
gid nobody
use chroot yes
max connections 5
syslog facility local5
pid file /var/run/rsyncd.pid
read only true[backup]
path /home/backuproot
# min hour day month weekday command
0 * * * * run-parts /home/1hour
0 0 * * * run-parts /home/0Hday
0 1 * * * run-parts /home/1Hday
0 2 * * * run-parts /home/2Hday
0 3 * * * run-parts /home/3Hday
0 5 * * * run-parts /home/5Hday
0 4 * * 6 run-parts /home/1weekDockerfile
FROM alpine:3.19.1
WORKDIR /homeCOPY root /var/spool/cron/crontabs/root
COPY rsyncd.conf /home
COPY mc /home
RUN chmod x mcRUN mkdir 1hour mkdir 0Hday mkdir 1Hday mkdir 2Hday mkdir 3Hday mkdir 5Hday mkdir 1week
RUN echo http://mirrors.aliyun.com/alpine/v3.19/community /etc/apk/repositories
RUN echo http://mirrors.aliyun.com/alpine/v3.19/main /etc/apk/repositories
RUN apk update apk upgrade
RUN apk --no-cache add bash mysql-client rsync tzdata
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo Asia/Shanghai /etc/timezone镜像制作
cd /home/dockerimg/crontab
docker build --tag crontab:1.0 .二、MySQL数据备份
backup-data-mysql.sh
#!/bin/shlog_save_days30 # 备份日志保留几天
log_path/home/logs # 备份日志路径
log_filebackup-data-mysql.log # 备份日志名称data_path/home/backup/mysql # 备份路径
data_dir$(date %Y%m) # 备份数据目录
mysql_path/home/mysql/data # mysql-bin.*日志存放目录
mysql_binmysql-bin.index # mysql-bin.index位置
mysql_addr192.168.1.6 # mysql地址
mysql_port3306 # mysql端口
mysql_userroot # mysql用户名
mysql_password12345678 # mysql密码data_dir_before$(date -d$(( date %s-86400)) %Y%m)
mkdir -p /home/crontab/logs
mkdir -p $data_path/$data_dir
mkdir -p $data_path/$data_dir_beforeecho $log_path/$(date %Y%m)-$log_file
echo 备份开始时间: $(date %F%n%T) $log_path/$(date %Y%m)-$log_file
mysqladmin -h$mysql_addr -P$mysql_port -u$mysql_user -p$mysql_password flush-logs
countwc -l $mysql_path/$mysql_bin |awk {print $1}
num0
for file in cat $mysql_path/$mysql_bin
dobasebasename $filenumexpr $num 1if [ $num -ne $count ] (! test -e $data_path/$data_dir/$base.log.gz) (! test -e $data_path/$data_dir_before/$base.log.gz)thengzip -c $mysql_path/$base $data_path/$data_dir/$base.log.gzecho 备份: $data_path/$data_dir/$base.log.gz $log_path/$(date %Y%m)-$log_filefi
done
echo 备份结束时间: $(date %F%n%T) $log_path/$(date %Y%m)-$log_filefind $log_path -type f -name *$log_file -mtime $log_save_days -exec rm -rf {} \;三、Minio数据备份
backup-data-minio.sh
#!/bin/shlog_save_days30 # 备份日志保留几天
log_path/home/logs # 备份日志路径
log_filebackup-data-minio.log # 备份日志名称data_path/home/backup/minio # 备份路径
data_dir$(date %Y%m) # 备份数据目录
minio_dir$(date %Y%m%d) # minio存储 月 $(date %Y%m) 天 $(date %Y%m%d)
minio_addrhttp://192.168.1.6:9000 # minio地址
minio_useradmin # minio用户名
minio_password123456 # minio密码
minio_bucketbucket # minio桶名称mkdir -p /home/crontab/logs
mkdir -p $data_path/$data_dir
mkdir $data_path/$data_dir/tmpecho $log_path/$(date %Y%m)-$log_file
echo 备份开始时间: $(date %F%n%T) $log_path/$(date %Y%m)-$log_file
/home/mc alias set minio_backup $minio_addr $minio_user $minio_passwordminio_buckettest
/home/mc cp --recursive minio_backup/$minio_bucket/$minio_dir $data_path/$data_dir/tmp
cd $data_path/$data_dir/tmp
tar -zcf $data_path/$data_dir/$minio_bucket-$minio_dir.tar.gz *
rm -rf $data_path/$data_dir/tmp
echo 备份: $data_path/$data_dir/$minio_bucket-$minio_dir.tar.gz $log_path/$(date %Y%m)-$log_fileecho 备份结束时间: $(date %F%n%T) $log_path/$(date %Y%m)-$log_filefind $log_path -type f -name *$log_file -mtime $log_save_days -exec rm -rf {} \;四、数据跨服务器传输
crondbase.sh
#!/bin/shcrond -f -l 8cronddata.sh
#!/bin/shrsync --daemon --config/home/rsyncd.conf
crond -f -l 8rsyncd.secrets
root:passwordbackup-data-copy.sh
#!/bin/sh
# 只传输变化部分、支持断点续传、同步服务器都需要安装rsynclog_save_days30 # 日志保留几天
log_path/home/logs # 日志路径
log_filebackup-data-copy.log # 日志名称echo $log_path/$(date %Y%m)-$log_file
echo 数据传输开始时间: $(date %F%n%T) $log_path/$(date %Y%m)-$log_file
rsync -avzP --password-file/home/rsyncd.secrets root192.168.6.12::backup /home/backup
echo 数据传输结束时间: $(date %F%n%T) $log_path/$(date %Y%m)-$log_filefind $log_path -type f -name *$log_file -mtime $log_save_days -exec rm -rf {} \;五、Nginx日志分割
#!/bin/shlog_save_days30 # 备份日志保留几天
log_path/home/logs # 备份日志路径
log_filebackup-log-nginx.log # 备份日志名称data_save_days60 # 备份保留几天
data_path/home/nginx/logs # 备份路径mkdir -p /home/crontab/logs
mkdir -p /home/nginx/logs/access
mkdir -p /home/nginx/logs/errorecho $log_path/$(date %Y%m)-$log_file
echo 备份开始时间: $(date %F%n%T) $log_path/$(date %Y%m)-$log_file
for item in access error
dogzip -c $data_path/$item.log $data_path/$item/$(date -d$(( date %s-3600)) %Y-%m-%d)_$item.log.gzecho 备份: $data_path/$item/$(date -d$(( date %s-3600)) %Y-%m-%d)_$item.log.gz $log_path/$(date %Y%m)-$log_filerm -rf $data_path/$item.log touch $data_path/$item.log
done
find $data_path/$item -type f -name *.gz -mtime $data_save_days -exec rm -rf {} \;echo 备份结束时间: $(date %F%n%T) $log_path/$(date %Y%m)-$log_filefind $log_path -type f -name *$log_file -mtime $log_save_days -exec rm -rf {} \;六、Docker启动 /home/docker/crontab 数据库服务器 docker-crontab-data.yaml
version: 3services:crontab:image: crontab:1.0restart: alwayscontainer_name: ser-crontabhostname: crontabports:- 873:873networks:- apphostenvironment:TZ: Asia/Shanghaivolumes:- /home/docker/crontab/backup-log-nginx.sh:/home/0Hday/backup-log-nginx.sh- /home/docker/crontab/backup-data-mysql.sh:/home/1Hday/backup-data-mysql.sh- /home/docker/crontab/backup-data-minio.sh:/home/2Hday/backup-data-minio.sh- /home/docker/crontab/cronddata.sh:/home/command.sh- /home/backup:/home/backup- /home/docker/logs:/home/logs- /home/nginx/logs:/home/nginx/logs- /home/mysql/data:/home/mysql/datacommand: sh -c /home/command.shnetworks:apphost:数据备份服务器 docker-crontab-base.yaml
version: 3services:crontab:image: crontab:1.0restart: alwayscontainer_name: ser-crontabhostname: crontabnetworks:- apphostenvironment:TZ: Asia/Shanghaivolumes:- /home/docker/crontab/backup-log-nginx.sh:/home/0Hday/backup-log-nginx.sh- /home/docker/crontab/backup-data-copy.sh:/home/3Hday/backup-data-copy.sh- /home/docker/crontab/rsyncd.secrets:/home/rsyncd.secrets- /home/docker/crontab/crondbase.sh:/home/command.sh- /home/backup:/home/backup- /home/docker/logs:/home/logs- /home/nginx/logs:/home/nginx/logscommand: sh -c /home/command.shnetworks:apphost:数据库服务器启动
mkdir -p /home/docker/crontab mkdir -p /home/docker/logs
cd /home/docker/crontab chmod 777 *.* chmod 600 rsyncd.secrets
docker-compose -f /home/docker/crontab/docker-crontab-data.yaml -p crontab up -d数据备份服务器启动
mkdir -p /home/docker/crontab mkdir -p /home/docker/logs
cd /home/docker/crontab chmod 777 *.* chmod 600 rsyncd.secrets
docker-compose -f /home/docker/crontab/docker-crontab-base.yaml -p crontab up -d七、Docker备份日志
/home/docker/logs/202404-backup-data-copy.log
数据传输开始时间: 2024-04-12 03:00:00
数据传输结束时间: 2024-04-12 03:00:00/home/docker/logs/202404-backup-log-nginx.log
备份开始时间: 2024-04-12 00:00:00
备份: /home/nginx/logs/access/2024-04-11_access.log.gz
备份: /home/nginx/logs/error/2024-04-11_error.log.gz
备份结束时间: 2024-04-12 00:00:00/home/docker/logs/202404-backup-data-minio.log
备份开始时间: 2024-04-12 02:00:00
备份: /home/backup/minio/202404/test-20240412.tar.gz
备份结束时间: 2024-04-12 02:00:00/home/docker/logs/202404-backup-data-mysql.log
备份开始时间: 2024-04-12 01:00:00
备份: /home/backup/mysql/202404/mysql-bin.000041.log.gz
备份结束时间: 2024-04-12 01:00:03