我正在尝试通过 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