переменная в имени файла scp не работает? - PullRequest
5 голосов
/ 13 декабря 2011

Я пытаюсь скопировать резервный файл tgz с одного сервера на другой каждую ночь. Сценарий резервного копирования прекрасно использует следующую переменную $ date, но когда я немного изменяю ее для scp, она ломается:

#!/bin/sh
date=`date +%Y-%m-%d`
rbfile=`/backups/$date_00h00.tgz`
scp $rbfile user@myserverip:

Но скрипт умирает с ошибкой:

/backups/.tgz: No such file or directory

Кстати, мне действительно стоит переключиться на rsync для лучшего резервного копирования - файлы tgz теперь имеют размер 3,5 ГБ. Любые рекомендуемые учебники?

1 Ответ

4 голосов
/ 13 декабря 2011

при использовании $date_00h00 вы указываете bash использовать переменную с именем date_00h00, потому что буквы, цифры и символы _ разрешены в качестве имен переменных.

Вложите имя переменной в {}, и это исправит проблему:

rbfile=`/backups/${date}_00h00.tgz`
...