"Синтаксическая ошибка: Незаконченная строка в кавычках"

Я пытаюсь использовать сценарий резервного копирования, который будет создавать резервные копии моей базы данных sql и файлов веб-сайта.Я использую 32-разрядную версию Ubuntu 12.04 и ZPanel.

Кроме того, что это за переменные:

MYSQL="$()"
MYSQLDUMP="$()"
GZIP="$()"

Я предполагаю, что первое - это имя базы данных.

Вот сценарий:

#!/bin/sh#----------------------------------------------------------------# Daily Backup Routine - Backup and Sync to Dropbox# This script creates a backup using today's date, then deleted# any backups made 3 days ago. If run every day it will ensure# you have a week's worth of backups of your MySQL databases and# zPanel web directories. ## Uses whatever Dropbox account is running on the server.## Written by Richard Ferreira for the backup of zPanel websites.# Contact me - richard[at]beetle001.com#----------------------------------------------------------------## Before we get started, we should set some parameters. We'll need these for later.# The webserver's datafiles:WEBDIR="/var/zpanel/hostdata/"# Where do we want the backup to go?  (SET THIS - IT'S A TEMP FOLDER)BACKUP="/root/backup-temp"# Where is our dropbox folder? (SET THIS TO YOUR ABSOLUTE BACKUP PATH)DROPBOX="/root/Dropbox/Backups# What do we want our date to look like?NOW=$(date +"%d-%m-%Y")# We need to know the date 3 days ago to purge any backups that were made 3 days ago.# This ensures we don't keep unnecessarily old backups.# It doesn't matter if it skips one every now and then - we'll just have to check manually from time to time.# If you want to keep more days backups, change the "3 days ago" to "x days ago"DAYSAGO=$(date --date="3 days ago" +"%d-%m-%Y")# What should our file backup look like?WEBFILE="webdirs-full-$NOW.tar.gz"# Our MySQL Login information and some paths (we'll use 'which' to make sure we get them):SQLUSER="root"# Don't forget to change the root password here!SQLPASS="xxxxxxxxxxxx"SQLHOST="localhost"MYSQL="$(db-name)"MYSQLDUMP="$(db-name)"GZIP="$(.gz)"## Let's just, for sanity's sake, make sure our temp backup folder exists.mkdir $BACKUP# DON'T EDIT ANYTHING BELOW THIS LINE#----------------------------------------------------------------# Now let's start!# Let's get the databases that we want to backup.DBS="$($MYSQL -u $SQLUSER -h $SQLHOST -p$SQLPASS -Bse 'show databases')"# Now let's dump them to .sql files and put them in our backup directory.for db in $DBSdoFILE=$BACKUP/mysql-$db.$NOW.gz$MYSQLDUMP -u $SQLUSER -h $SQLHOST -p$SQLPASS $db | $GZIP -9 > $FILEdone## Let's shove the whole webserver directory into a tarball and throw that in with the sql files:tar -zcvf /root/backup/$WEBFILE $WEBDIR# That's all done - we should put the backups on Copy by putting them into our Copy folder.# First let's make a folder for today.mkdir $DROPBOX/$NOW# Copy our backups into it.cp -R $BACKUP/* $DROPBOX/Asterix/$NOW# We can delete the backup we made 3 days ago from Copy now.rm -rf $DROPBOX/$DAYSAGO# And clear out the temporary director for next time.rm $BACKUP/*# Job well done!# Have a beer and relax!

Вот моя проблема: когда я пытаюсь запустить скрипт, я получаю это error:./backup.sh : 66: ./backup.sh : Синтаксическая ошибка: Незаконченная строка в кавычках

Если бы кто-нибудь мог мне в этом помочь, я был бы очень признателен!

Линия с

DROPBOX="/root/Dropbox/Backups

не имеет " в конце.

То MYSQL, MYSQLDUMP и GZIP переменные относятся к программам, используемым для выполнения различных команд. Таким образом, они должны содержать путь к этим программам:

MYSQL="/usr/bin/mysql"MYSQLDUMP="/usr/bin/mysqldump"GZIP="/bin/gzip"

Вы можете использовать выходные данные which <program name> чтобы посмотреть, что туда положить:

$ which mysql/usr/bin/msql$ which gzip/bin/gzip

Я столкнулся с той же проблемой, что и показано ниже.

MY_VAR="123"#comments

затем я поставил пробел перед символом #, а затем решил.

Я думаю, что “DROPBOX =”/root /Dropbox /Резервные копии" должно быть “DROPBOX =”/root /Dropbox /Резервные копии"`.