Создать бэкап в zip
Для восстановления sql
mysql --user="root" --password='123' --database="your_database_name" < path/to/your/file.sql
#! /bin/bash
# sh /root/create_backup.sh
# exit 0
# Файл для периодического создания бэкапов в zip
project_name="pr"
max_old_backups=5
sql_bd_name=""
sql_login=""
sql_password=""
project_dir="/var/www/pr"
backups_dir="/root/backups_${project_name}"
datetime=$(date +"%Y-%m-%d_%H-%M-%S")
new_backup="${backups_dir}/${datetime}.zip"
tmp_sql="${backups_dir}/tmp_${datetime}.sql"
# Если нет этой папки, то создаём
if [ ! -d $backups_dir ]; then
mkdir -p $backups_dir
fi
# Очистка от старых
# Получаем количество файлов в папке
file_count=$(ls -1 $backups_dir | wc -l)
if [ $file_count -gt $max_old_backups ]; then # Если файлов больше
# Сортируем файлы по времени изменения и берём только последние
files_to_delete=$(ls -1t $backups_dir | tail -n $(($file_count - $max_old_backups)))
# Удаляем старые файлы
for file in $files_to_delete; do
rm "${backups_dir}/${file}"
done
fi
echo "Create tmp_sql" &&
mysqldump -u $sql_login -p$sql_password $sql_bd_name > $tmp_sql &&
echo "tmp_sql in zip" &&
zip -q $new_backup $tmp_sql &&
echo "remove tmp_sql" &&
rm $tmp_sql &&
#echo "project in zip" &&
#zip -qr $new_backup $project_dir -x /var/www/pr/public/storage/* -x /var/www/pr/public/uploads/* -x /var/www/pr/storage/app/* &&
du -h $new_backup &&
echo "ready ${new_backup}"