Advertisement
Guest User

Untitled

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