
Я пытаюсь сделать следующее:
- экспортировать базу данных (возможно, сделать из нее .tgz, это тривиально)
- упаковать целое дерево в .tgz
- скопируйте оба файла в именованный каталог на другом сервере.
яможетсделать все это с помощью текущего скрипта (bash), который у меня есть в настоящее время. Но поскольку я ищу автоматизацию, мне нужно больше автоматизации.
В данный момент я
- создать каталог с сегодняшней датой
- mysqldump база данных в файл с именем, содержащим эту дату
- создать .tgz дерева каталогов, снова с именем, содержащим сегодняшнюю дату
- подключиться к серверу через sftp (или scp, неважно... это сервер windows(s)ftp(s))
- загрузить (в настоящее время статический) файл в (в настоящее время статический) каталог
- выйти из sftp-сервера и выдать статус загрузки.
Нужно ли мне преобразовать два имени файлов в переменные перед подключением к SFTP-серверу, чтобы можно было сказать «put $filename1» и т. д.?
решение1
С любой оболочкой POSIX (включая bash
) вы можете использовать такие команды:
# Today's date
today=$(date +'%Y-%m-%d')
# Create directory
mkdir "$today"
# Dump SQL backup
mysqldump … > "$today/sqlbackup.$today.sql"
# Make a tarball
tar cf "$today.tgz" "$today"
# Transfer file
scp -p "$today.tgz" remoteHost:
# Get a status report from the immediately preceding command
echo "Status is $? (0=good)"