Created
January 2, 2021 16:43
-
-
Save jtprogru/bfc06947a7aeaebdafa5f69befe793c8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| export RSYNC_PASSWORD='P@S$W0Rd' | |
| [email protected]::BackUp/ | |
| currentDate=`date +%F` | |
| currentMonth=`date +%Y-%m` | |
| rsyncTmp=/tmp/rsync/ | |
| rsyncMkdir=${rsyncTmp}mkdir/ | |
| rsyncDB=${rsyncTmp}db/ | |
| # логин-пароль рута mysql | |
| dbusername=root | |
| dbpassword=mysql_root_password | |
| # rsync не умеет создавать директории. Немного извернёмся. | |
| # | |
| # rsync_mkdir relative/path destinationPath | |
| rsync_mkdir () | |
| { | |
| mkdir -p ${rsyncMkdir}$1 | |
| rsync -v --archive --compress --progress ${rsyncMkdir} $2 | |
| rm -R ${rsyncMkdir} | |
| } | |
| # Делаем дамп БД, сжимаем, отсылаем на NAS. | |
| # | |
| # rsync_db dbname destinationPath | |
| rsync_db () | |
| { | |
| mkdir -p ${rsyncDB} | |
| mysqldump -u $dbusername --password=$dbpassword $1 | gzip -9 > ${rsyncDB}${1}_${currentDate}.sql.gz; | |
| rsync -v --archive --compress --progress --partial ${rsyncDB} $2 | |
| rm -R ${rsyncDB} | |
| } | |
| # Отсылаем всю директорию на NAS. | |
| # | |
| # --delete-after --force после завершения копирования удаляет на NAS всё, чего | |
| # больше нет в исходнике. | |
| # --partial позволяет докачивать прерванные загрузки. Полезно, если соединение не очень. | |
| # --compress жать перед отправкой, разжимать на NAS. | |
| # --archive сохраняем атрибуты файлов. | |
| # -v --progress показываем прогресс загрузки и другие сообщения. | |
| # | |
| # rsync_dir sourcePath destinationPath | |
| rsync_dir () | |
| { | |
| rsync -v --archive --compress --progress --force --partial $1 $2 | |
| } | |
| ### example.com ### | |
| backupdir=Buh/ | |
| backupdirMonth=${backupdir}${currentMonth}/ | |
| rsync_mkdir ${backupdirMonth} ${backupServer} | |
| rsync_db example_com1 ${backupServer}/${backupdir} | |
| rsync_db example_com2 ${backupServer}/${backupdir} | |
| rsync_dir /Volumes/PATH/ ${backupServer}/${backupdirMonth} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment