im simple message default title
PostgreSQL coub css express.js freeware git jquery laravel links linux macos mysql node.js php python task1 ubuntu vim virtualbox анекдот игры интересно музыка стихи цитаты

bash-скрипт для резервирования данных September 01, 2009

Писался на коленке при помощи гугла. Цель была зарезервировать список папок и список БД mysql с одного хоста.

#!/bin/bash
##################### config
dirs_to_save="/home/ci1.loc /home/smarty /home/TTT"
my_dir_for_backups="/home/captain/backups"
mysql_databases_to_save="content mysql test"
mysql_user_name="root"
##################### /config
target_dir=`date +%F`
backup_dir="$my_dir_for_backups/$target_dir/"
echo "
-------------------------------------------------------------------
ijin reserv_copy script v.1.1 | Wed 02 Sep 2009 02:53:30 PM MSD
hello at: "`date`"
i'll save dump to: "$backup_dir"
-------------------------------------------------------------------
"
# create dir for current dump
mkdir -p $backup_dir
echo "dumping directories: 
--------------------"
# pack all src dirs
for cur_dir in $dirs_to_save; do
   dst_file=${cur_dir//\//-} # change slashes to -
   dst_file=$backup_dir${dst_file/-/}".tar.gz" # remove first - and create full dst file name
   echo $cur_dir" -> "$dst_file 
   tar -czf $dst_file $cur_dir &> /dev/null # no output from tar
done
read -s -p "
enter pass for mysql please: " MYSQL_PASS
echo "
dumping databases: 
------------------"
# pack all src databases
for cur_db in $mysql_databases_to_save; do
    dst_file=$backup_dir$cur_db".sql"
    echo $cur_db" -> "$dst_file 
    mysqldump -u $mysql_user_name --password=$MYSQL_PASS $cur_db > $dst_file 2> /dev/null ### hide error messages
    if [ $? != 0 ] ### result of execution of mysqldump
    then
        echo "=> WARNING: can't dump database. Check login:pass and privileges."
        unlink $dst_file
    else
        echo "=> OK: "$cur_db" dumped ok. I'll gzip it now.."
        gzip $dst_file
    fi
done
echo "
-------------------------------------------------------------------
all done.
bye at: "`date`"

"
sleep 1
Естественно прав на папки и базы у пользователей должно хватать. Вывод будет примерно такой:
bash script
linux

Comments

No comments here yet.
You have to login to post a new comment.
HO-HO-HO!! L10 is here.
dance-dance #3
update new 01.10.2023