Linux

Rsnapshot:對“備份”組而不是 root 的文件夾所有權權限

  • May 22, 2020

我正在使用 rsnapshot 對伺服器上的 MYSQL 數據庫進行每日備份。除了目錄的所有權是root:root. 我希望它能夠root:backups讓我通過 ssh 連接輕鬆地將這些備份下載到本地電腦。(我的 ssh 使用者有 sudo 權限,但我不想每次製作備份的本地副本時都輸入密碼。這個使用者是備份組的一部分。)

/etc/rsnapshot.conf我有這一行:

backup_script /usr/local/bin/backup_mysql.sh mysql/

在文件中/usr/local/bin/backup_mysql.sh我有:

umask 0077
# backup the database
date=`date +"%y%m%d-%h%m%s"`                                                                                             
destination=$date'-data.sql.gz'
/usr/bin/mysqldump --defaults-extra-file=/root/.my.cnf --single-transaction --quick --lock-tables=false --routines data | gzip -c > $destination
/bin/chmod 660 $destination
/bin/chown root:backups $destination

結果的文件結構是:

/backups/
├── [drwxrwx---]  daily.0
│   └── [drwxrwx---]  mysql [error opening dir]
├── [drwxrwx---]  daily.1
│   └── [drwxrwx---]  mysql [error opening dir]

備份數據文件本身的所有權是正確的,如root:backups,但我無法訪問該文件,因為它所在的文件夾mysql屬於root:root

在預設/etc/rsnapshot配置文件中如下:

# Specify the path to a script (and any optional arguments) to run right
# after rsnapshot syncs files
# cmd_postexec   /path/to/postexec/script

您可以使用在需要更改其組所有權的結果文件上cmd_postexec執行命令。chgrp

引用自:https://unix.stackexchange.com/questions/585307