Advertisement
Guest User

Untitled

a guest
Jun 17th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.87 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Konfigurační proměnné
  4. MAX_ZALOH=50
  5. MOUNT=1 # 0/1 Má se mountovat zařízení pro zálohu ?
  6.     MOUNT_DEVICE='/dev/sda6'
  7.     MOUNT_POINT='/mnt/zaloha/' # Musí končit /
  8. DIR='/mnt/zaloha/auto/' # Cesta k zálohám
  9. MYSQL=1 # 0/1 Uložit i obsah MySQL ?
  10.     MYSQL_USER='root'
  11.     MYSQL_PASS='bunny63funny'  
  12.  
  13. # Seznam souborů, které se uloží
  14. FILES=\
  15. (
  16.     '/home/frostyx/.mpdconf'
  17.     '/home/frostyx/.bashrc'
  18.     '/etc/crontab'
  19.     '/etc/samba/smb.conf'
  20.     '/etc/fstab'
  21.     '/etc/rc.conf'
  22.     '/etc/rc.local'
  23.     '/etc/group'
  24.     '/etc/passwd'
  25.     '/etc/slim.conf'
  26.     '/boot/grub/menu.lst'
  27. );
  28.  
  29. # Seznam adresářů, které se uloží
  30. DIRS=\
  31. (
  32.     '/home/frostyx/docs'
  33.     '/home/frostyx/.irssi'
  34.     '/home/frostyx/.mpd'
  35.     '/home/frostyx/.fonts'
  36.     '/home/frostyx/.conky'
  37.     '/home/frostyx/.themes'
  38.     '/home/frostyx/.config/geany'
  39.     '/home/frostyx/.config/openbox'
  40.     '/home/frostyx/.config/Terminal'
  41.     '/home/frostyx/.config/vlc'
  42.     '/home/frostyx/.ncmpcpp'
  43.     '/var/www'
  44.     '/usr/scripts'
  45. );
  46.  
  47. # Ověření konfiguračních proměnných
  48. if [ $MOUNT -eq 1 ]; then
  49.     if [ -e $MOUNT_DEVICE ] && [ -e $MOUNT_POINT ]; then
  50.         right=1
  51.         mount $MOUNT_DEVICE $MOUNT_POINT
  52.     else
  53.         right=0
  54.     fi
  55. fi
  56. if [ -e $DIR ]; then
  57.     right=1
  58. else
  59.     right=0
  60. fi
  61.    
  62. # Pokud jsou proměnné v pořádku provede se záloha
  63. if [ $right -eq 1 ]; then
  64.    
  65.     # Vytvoření a vstup do adresáře pro aktuální zálohu
  66.     FOLDER=`date +%d_%m_%Y+%H:%M`
  67.     if [ ! -e ${DIR}${FOLDER} ]; then
  68.         mkdir ${DIR}${FOLDER}
  69.     else
  70.         i=2;
  71.         created=0
  72.         while [ $created -ne 1 ]
  73.         do
  74.             if [ ! -e ${DIR}${FOLDER}"($i)" ]; then
  75.                 FOLDER=$FOLDER"($i)"
  76.                 mkdir ${DIR}${FOLDER}
  77.                 created=1
  78.             fi
  79.             i=$(($i + 1))
  80.         done       
  81.     fi
  82.     cd ${DIR}${FOLDER}
  83.    
  84.     # Vytvoří README
  85.     touch README
  86.     echo -e "Záloha byla vytvořena v "`date +%H:%M`" dne "`date +%d.%m.`" ("`date +%A`") v roce "`date +%Y`".\n" > README
  87.  
  88.     # Uloží soubory podle pole FILES
  89.     echo "Seznam uložených souborů:" >> README
  90.     i=0
  91.     while [ ${FILES[$i]} ]
  92.     do
  93.         cp ${FILES[$i]} ./
  94.         i=$(($i + 1))
  95.         echo "  "${FILES[$i]} >> README
  96.     done
  97.  
  98.     # Uloží adresáře podle pole DIRS
  99.     echo "Seznam uložených složek:" >> README
  100.     i=0
  101.     while [ ${DIRS[$i]} ]
  102.     do 
  103.         cp -R ${DIRS[$i]} ./
  104.         i=$(($i + 1))
  105.         echo "  "${DIRS[$i]} >> README
  106.     done
  107.    
  108.     # Záloha MySQL
  109.     mysqldump --user=$MYSQL_USER --password=$MYSQL_PASS -A > ./mysql.sql
  110.    
  111.     # Vytvoření složky latest
  112.     cd ../
  113.     if [ -e ./latest ]; then
  114.         rm -R ./latest
  115.     fi
  116.     mkdir ./latest
  117.     cp -R $FOLDER ./latest
  118.     chmod 777 -R ./latest
  119.     MAX_ZALOH=$(($MAX_ZALOH + 1))
  120.    
  121.     # Smazání starších záloh
  122.     if [ $(ls | wc -l) -gt $MAX_ZALOH ]; then  
  123.         ZALOHY=(`ls --sort=time --reverse`)
  124.         rm -R ${ZALOHY[0]} 
  125.     fi
  126.  
  127.     # Opustí adresář a odpojí zařízení
  128.     cd
  129.     if [ $MOUNT -eq 1 ]; then
  130.         umount $MOUNT_DEVICE
  131.     fi
  132. else
  133.     echo 'Záloha byla neůspěšná, protože některá z konfiguračních proměnných není v pořádku'
  134. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement