我正在使用 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
。
答案1
默认/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