Изменение пути в aws

У меня есть сценарий, который создает резервную копию mysql базы данных в aws. Я должен добавить код к сценарию, который удаляет базы данных после того, как резервное копирование успешно на aws. Может кто-то вести меня с кодом. Вот сценарий

#!/bin/bash

# Basic variables
mysqlpass="mysql"
bucket="s3://akshaysolutionbackup/orbit/"

# Timestamp (sortable AND readable)
stamp=`date +"%d-%m-%Y"`

# List all the databases
databases=`mysql -u root -pmysql -e "SHOW DATABASES;" | tr -d "| " | grep -v "\(Database\|information_schema\|performance_schema\)"`

# Feedback
echo -e "Dumping to \e[1;32m$bucket/$stamp/\e[00m"

# Loop the databases
for db in $databases; do

# Define our filenames
filename="$stamp - $db.sql.gz"
tmpfile="/tmp/$filename"
object="$bucket/$stamp/$filename"

# Feedback
echo -e "\e[1;34m$db\e[00m"

# Dump and zip
echo -e "  creating \e[0;35m$tmpfile\e[00m"
mysqldump -u root -pmysql --force --opt --databases "$db" | gzip -c > $tmpfile"

# Upload
echo -e "  uploading..."
s3cmd put "$tmpfile" "$object"

# Delete
rm -f "$tmpfile"
done;

# Jobs a goodun
echo -e "\e[1;32mJobs a goodun\e[00m"
0
задан 28 July 2016 в 14:12

1 ответ

Самый легкий способ удалить базу данных из сценария:

echo "drop database dbname" | mysql -u username -ppassword

Это запустит mysql клиент командной строки и выполнит SQL-оператор, который был передан по каналу в него эти echo команда. В Вашем сценарии можно или удалить базу данных, как только это было сохранено:

echo "drop database $db" | mysql -u username -ppassword

do / done цикл), или ожидают, пока конец сценария, когда целое резервное копирование завершено, и затем делает другой цикл через базы данных и не отбрасывает всех их:

for db in databases; do
  echo "drop database $db" | mysql -u username -ppassword
done;
1
ответ дан 28 September 2019 в 18:46

Другие вопросы по тегам:

Похожие вопросы: