0

我在 Ubuntu 服务器上有一个 bash 脚本,用于通过 WP-CLI 进行数据库备份,并使用 Dropbox Uploader 备份到 Dropbox。该脚本多年来一直在我们不使用 Roots Bedrock 堆栈的网站上运行。我们最近开始使用 Bedrock Stack 和 Capistrano 进行部署,现在我想修改我的脚本来备份这些站点上的数据库。问题在于,bash 脚本不理解 Wordpress 路径指令的符号链接。通过 Bedrock Stack 和服务器设置,公共目录是 ~/current/web 的符号链接。Current 是 Capistrano 更新以指向当前修订目录的符号链接。任何人都知道如何修改我的脚本以使用符号链接?这是脚本:

#!/bin/bash

# Script to create compressed backup archive of database.

# Set the date format, name, and directory for backups.
NOW=$(date +"%Y%m%d-%H%M")
BACKUP_DIR="/srv/users/serverpilot/apps/backup/public/site"
WP_PATH="/srv/users/serverpilot/apps/site/public"

# MySQL database names
DB_NAME="site_staging"
DB_FILE="site_staging_db_$NOW.sql"
DB_FILEGZ="site_staging_db_$NOW.sql.gz"

# Create the archive and the MySQL dump
wp db export --add-drop-table --path=$WP_PATH $BACKUP_DIR/$DB_FILE
gzip $BACKUP_DIR/$DB_FILE
bash /srv/users/serverpilot/./dropbox_uploader.sh upload $BACKUP_DIR/$DB_FILEGZ /site/

4

1 回答 1

0

您可以使用readlink来解析符号链接,因此在您的情况下,您可以执行以下操作:

#!/bin/bash
# The symlinked directory you need to back up
symlink_dir="/srv/users/serverpilot/apps/site/public"

# Set $BACKUP_DIR as the resolved symlink
BACKUP_DIR=$(readlink -f "$symlink_dir")

# Use the absolute path in your backup script
echo "$BACKUP_DIR"

readlink 的联机帮助页概述了一系列其他输出选项。

于 2019-03-11T19:16:15.990 回答