【问题标题】:OSX - Can't compress database files in backup script - permission denniedOSX - 无法在备份脚本中压缩数据库文件 - 权限被拒绝
【发布时间】:2013-03-08 01:59:38
【问题描述】:

我对这一切都非常熟悉,所以放轻松 - 我的第一次 bash 脚本编写。

我制作了一个简单的 bash 脚本:

  • 登录网络服务器
  • 将网站文件传输到我们的 OSX 服务器
  • 将数据库哑元传输到我们的 OSX 服务器
  • 在 OSX 上使用 tar 压缩文件
  • 将一个以日期命名的存档保存到 OSX 上的不同目录
  • 删除超过 15 天的存档

该脚本运行良好,只是在制作存档时由于权限错误而失败 - 这一切都发生在 OSX 服务器上。

如何授予脚本压缩文件的权限?我使用网络服务器的 root 用户来传输文件。

脚本非常基础——只是一堆这样的终端命令:

echo "START WEB SERVER BACKUP"
rsync -azrP --delete user@1.2.3.4:/etc/apache2/ ~/Backups/webserver-backups/apache/;
echo "Complete"
echo "Starting transfer of mysql databases"
rsync -azrP --delete user@1.2.3.4:/mysql-backups/ ~/Backups/webserver-backups/mysql/;
echo "Complete"
echo "Starting transfer of website files"
rsync -azrP --delete root@1.2.3.4:/website-vhosts/ ~/Backups/webserver-backups/vhosts/;
echo "Complete"
echo "Compressing files into archive - this may take 5-10 minutes"
DATE=`date +%Y-%m-%d`
tar -zcfp ~/Backups/webserver-backups/archives/dev-$DATE.tar.gz ~/Backups/webserver-backups;
echo "Complete"
echo "Removing archives older than 15 days"
find "~/Backups/webserver-backups/archives/" -maxdepth 1 -type f -name "*.tar.gz" -mtime +15 -exec rm -f {} \;
echo "Complete"
echo "WEB SERVER BACKUP COMPLETE"

任何帮助或指点将不胜感激。

干杯

【问题讨论】:

    标签: macos bash rsync tar


    【解决方案1】:

    您的问题是尝试创建 tarball 的用户无法读取某些文件(如 dbu_1354246775.sql)。 删除 ~/Backups/webserver-backups 中的所有文件:

    sudo find ~/Backups/webserver-backups -type f -delete
    

    然后在您的脚本中将 tar -zcfp 命令替换为 tar czf

    并重新启动您的脚本

    【讨论】:

      【解决方案2】:

      p 选项仅用于提取。试试这个:

      tar -czf

      【讨论】:

      • 干杯伙伴,我仍然得到相同的错误 - 这里是输出:tar:从成员名称中删除前导 '/' tar:dbu_1354246775.sql:无法打开文件:权限被拒绝 tar:dbu_1348160584。 sql:无法打开文件:权限被拒绝
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      • 2020-09-20
      • 1970-01-01
      • 2018-11-16
      • 2014-06-18
      • 2015-11-15
      • 1970-01-01
      相关资源
      最近更新 更多