Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Konfigurační proměnné
- MAX_ZALOH=50
- MOUNT=1 # 0/1 Má se mountovat zařízení pro zálohu ?
- MOUNT_DEVICE='/dev/sda6'
- MOUNT_POINT='/mnt/zaloha/' # Musí končit /
- DIR='/mnt/zaloha/auto/' # Cesta k zálohám
- MYSQL=1 # 0/1 Uložit i obsah MySQL ?
- MYSQL_USER='root'
- MYSQL_PASS='bunny63funny'
- # Seznam souborů, které se uloží
- FILES=\
- (
- '/home/frostyx/.mpdconf'
- '/home/frostyx/.bashrc'
- '/etc/crontab'
- '/etc/samba/smb.conf'
- '/etc/fstab'
- '/etc/rc.conf'
- '/etc/rc.local'
- '/etc/group'
- '/etc/passwd'
- '/etc/slim.conf'
- '/boot/grub/menu.lst'
- );
- # Seznam adresářů, které se uloží
- DIRS=\
- (
- '/home/frostyx/docs'
- '/home/frostyx/.irssi'
- '/home/frostyx/.mpd'
- '/home/frostyx/.fonts'
- '/home/frostyx/.conky'
- '/home/frostyx/.themes'
- '/home/frostyx/.config/geany'
- '/home/frostyx/.config/openbox'
- '/home/frostyx/.config/Terminal'
- '/home/frostyx/.config/vlc'
- '/home/frostyx/.ncmpcpp'
- '/var/www'
- '/usr/scripts'
- );
- # Ověření konfiguračních proměnných
- if [ $MOUNT -eq 1 ]; then
- if [ -e $MOUNT_DEVICE ] && [ -e $MOUNT_POINT ]; then
- right=1
- mount $MOUNT_DEVICE $MOUNT_POINT
- else
- right=0
- fi
- fi
- if [ -e $DIR ]; then
- right=1
- else
- right=0
- fi
- # Pokud jsou proměnné v pořádku provede se záloha
- if [ $right -eq 1 ]; then
- # Vytvoření a vstup do adresáře pro aktuální zálohu
- FOLDER=`date +%d_%m_%Y+%H:%M`
- if [ ! -e ${DIR}${FOLDER} ]; then
- mkdir ${DIR}${FOLDER}
- else
- i=2;
- created=0
- while [ $created -ne 1 ]
- do
- if [ ! -e ${DIR}${FOLDER}"($i)" ]; then
- FOLDER=$FOLDER"($i)"
- mkdir ${DIR}${FOLDER}
- created=1
- fi
- i=$(($i + 1))
- done
- fi
- cd ${DIR}${FOLDER}
- # Vytvoří README
- touch README
- echo -e "Záloha byla vytvořena v "`date +%H:%M`" dne "`date +%d.%m.`" ("`date +%A`") v roce "`date +%Y`".\n" > README
- # Uloží soubory podle pole FILES
- echo "Seznam uložených souborů:" >> README
- i=0
- while [ ${FILES[$i]} ]
- do
- cp ${FILES[$i]} ./
- i=$(($i + 1))
- echo " "${FILES[$i]} >> README
- done
- # Uloží adresáře podle pole DIRS
- echo "Seznam uložených složek:" >> README
- i=0
- while [ ${DIRS[$i]} ]
- do
- cp -R ${DIRS[$i]} ./
- i=$(($i + 1))
- echo " "${DIRS[$i]} >> README
- done
- # Záloha MySQL
- mysqldump --user=$MYSQL_USER --password=$MYSQL_PASS -A > ./mysql.sql
- # Vytvoření složky latest
- cd ../
- if [ -e ./latest ]; then
- rm -R ./latest
- fi
- mkdir ./latest
- cp -R $FOLDER ./latest
- chmod 777 -R ./latest
- MAX_ZALOH=$(($MAX_ZALOH + 1))
- # Smazání starších záloh
- if [ $(ls | wc -l) -gt $MAX_ZALOH ]; then
- ZALOHY=(`ls --sort=time --reverse`)
- rm -R ${ZALOHY[0]}
- fi
- # Opustí adresář a odpojí zařízení
- cd
- if [ $MOUNT -eq 1 ]; then
- umount $MOUNT_DEVICE
- fi
- else
- echo 'Záloha byla neůspěšná, protože některá z konfiguračních proměnných není v pořádku'
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement