Advertisement
muhfiasbin

Script Backup (satu)

Jan 14th, 2012
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.06 KB | None | 0 0
  1. #!/bin/bash
  2. #================================================================================================
  3. #
  4. #          FILE: wbackup.sh
  5. #     CARA GUNA: wbackup.sh file.csv
  6. #    KETERANGAN: melakukan backup pada webhost dengan input file comma separated value (csv)
  7. #       PENULIS: Muhfi Asbin Sagala (muhfi.asbin@usu.ac.id)
  8. #         VERSI:
  9. #      TGL BUAT: 15.12.2011 - 11:55
  10. #    TGL REVISI: 05.01.2012 - 15:03
  11. #
  12. #================================================================================================
  13.  
  14.  
  15. #set -x                     # Debug
  16.  
  17.  
  18. TAR="$(which tar)"          # Perintah kompresi tar
  19. DUMP="$(which mysqldump)"   # Perintah dump database MySQL
  20. DATE="$(which date)"        # Perintah penampil tanggal
  21. NOW="$(${DATE} +%Y%m%d)"    # Tanggal sekarang
  22. MKDIR="$(which mkdir)"      # Perintah membuat direktori
  23. FIM=${1}                    # File masukan (berupa file CSV)
  24.  
  25.  
  26. #----------------------------------------------------------------------------------------------------
  27. #   periksa kewenangan root
  28. #----------------------------------------------------------------------------------------------------
  29. if [ "$(whoami)" != 'root' ] || [ "$(id -u)" != 0 ]; then
  30.     echo "Siapa Kau???"
  31.     exit 1
  32. fi
  33.  
  34.  
  35. #----------------------------------------------------------------------------------------------------
  36. #   periksa file masukan
  37. #----------------------------------------------------------------------------------------------------
  38. if [ -z "${FIM}" ]; then
  39.     echo "Masukan tidak tersedia!"
  40.     echo "Bentuk Perintah : ${0} [nama file]"
  41.     exit 1;
  42. elif [ ! -f ${FIM} ]; then
  43.     echo "File masukan tidak ada"
  44.     exit 1;
  45. elif [[ "$(echo ${FIM} | awk -F . '{print $NF;}')" != 'csv' \
  46.         || "$(file -ib ${FIM} | awk -F ';' '{print $1}')" != 'text/plain' ]]; then
  47.     echo "File masukan salah!"
  48.     echo "Bukan file CSV"
  49.     exit 1;
  50. else
  51.  
  52.  
  53. #----------------------------------------------------------------------------------------------------
  54. #   mengambil data dari file masukan
  55. #----------------------------------------------------------------------------------------------------
  56.     for d in $(seq 2 `wc -l "${FIM}" | awk '{print $1}'`)
  57.     do
  58.         UNIT="$(sed -n $d'p' "${FIM}" \
  59.        | awk -F ';' '{ print $2 }' \
  60.        | sed -r 's/^ *//g;s/ *$//g' \
  61.        | tr -dc '[:print:]' )"
  62.  
  63.  
  64.         DIR="$(sed -n $d'p' "${FIM}" \
  65.        | awk -F ';' '{ print $4 }' \
  66.        | sed -r 's/^ *//g;s/ *$//g' \
  67.        | tr -dc '[:print:]' )"
  68.  
  69.  
  70.         DB="$(sed -n $d'p' "${FIM}" \
  71.        | awk -F ';' '{ print $5 }' \
  72.        | sed -r 's/^ *//g;s/ *$//g' \
  73.        | tr -dc '[:print:]' )"
  74.  
  75.  
  76.         DBUSER="$(sed -n $d'p' "${FIM}" \
  77.        | awk -F ';' '{ print $6 }' \
  78.        | sed -r 's/^ *//g;s/ *$//g' \
  79.        | tr -dc '[:print:]' )"
  80.  
  81.  
  82.         DBPASS="$(sed -n $d'p' "${FIM}" \
  83.        | awk -F ';' '{ print $7 }' \
  84.        | sed -r 's/^ *//g;s/ *$//g' \
  85.        | tr -dc '[:print:]' )"
  86.  
  87.  
  88. #----------------------------------------------------------------------------------------------------
  89. #  periksa direktori backup dan membuatnya jika tidak ada
  90. #----------------------------------------------------------------------------------------------------
  91.         RDIR="$(echo ${DIR} | sed 's|/| |g' | awk '{print $3}')"
  92.         CDIR="$(echo ${DIR} | sed 's|/| |g' | awk '{print $4}')"
  93.  
  94.  
  95.         if [ ! -d "${RDIR}/${CDIR}" ]; then
  96.             mkdir -p "${RDIR}/${CDIR}"
  97.             echo "Berhasil membuat ${RDIR}/${CDIR}"
  98.         else
  99.             echo "${RDIR}/${CDIR} sudah ada"
  100.         fi
  101.  
  102.  
  103. #----------------------------------------------------------------------------------------------------
  104. #  melakukan backup direktori dan database
  105. #----------------------------------------------------------------------------------------------------
  106.         cd ${RDIR}/${CDIR}
  107.         ${TAR} -zcPf ${CDIR}.${NOW}.tar.gz ${DIR}
  108.         echo "Berhasil membuat ${CDIR}.${NOW}.tar.gz"
  109.  
  110.  
  111.         ${DUMP} -u${DBUSER} -p${DBPASS} ${DB} > ${DB}.${NOW}.sql
  112.         echo "Berhasil membuat $DB.$NOW.sql"
  113.  
  114.  
  115.         cd ../..
  116.     done
  117. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement