通过 bash 备份脚本——文件路径有问题吗?

通过 bash 备份脚本——文件路径有问题吗?

我正在尝试通过 CentOS GoDaddy 托管专用服务器上的 Plesk 计划任务运行备份 bash 脚本。我在这方面遇到了令人沮丧的麻烦(更糟糕的是,它曾是工作然后停止......)。

我想要发生的事情:我想要将指定备份的目录的整个备份放入“backups”目录中。

我正在使用的脚本: https://github.com/etiennerached/godaddy-backup-script

我努力了:

  • backupDirectory='备份'
  • 文件路径='/'
  • 我还尝试了所有我能想到的在 filesPath 变量中尝试的事情。 www/vhosts/订阅名称、html/vhosts/订阅名称、/var/html/vhosts/订阅名称/、/var/www/vhosts/订阅名称/、/订阅名称/、../、 html、httpdocs 等等我已经忘记了。

设置:

  • 它设置为通过 Plesk 计划任务运行。对脚本的调用是:/bin/bash backups/backup.sh除分钟之外的所有内容都设置为 *。分钟设置为 */1。
  • 脚本/var/www/vhosts/subscription-name/backups为backup.sh,设置为777权限。它所在的文件夹也设置为 777 权限。这两件事都是为了确保不是权限搞砸了我。
  • 还有第二个脚本,test.sh.它backup.sh与相同的 Plesk 计划任务设置和相同的权限位于同一目录中。它按照指示每分钟尽职尽责地写入文本文件。

我认为脚本在我的订阅的主目录中执行,所以我不太明白为什么“/”和“备份”不起作用。但是,如果它在我的服务器的根目录中执行,那么完整路径调用之一不应该起作用吗?

答案1

如果您只想备份您指定的目录这应该有效:

将此脚本放入您要备份的目录中:

#!/bin/bash

#Check if "backups" exists / if not create folder
if [ ! -d "backups" ]
then
mkdir backups
fi

#Begin Backup
#Choose if you want to use gzip or just tar

#TAR with gzip
#tar -cvfz  --exclude=backups --exclude=${BASH_SOURCE[0]} backups/backup.tar.gz .

#TAR without gzip
#tar -cvf  --exclude=backups --exclude=${BASH_SOURCE[0]} backups/backup.tar.gz .

#NOTE: We exclude "${BASH_SOURCE[0]}" because that's the name of our script,
#      so you can rename it to whatever you like
exit 0

相关内容