Advertisement
pesarkhobeee

PM

Jan 7th, 2012
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.61 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3.  #      PM(project manager)
  4.  #  
  5.  #      This file is part of PM  
  6.  #
  7.  #      Copyright 2011 Farid Ahmadian <pesarkhobeee@gmail.com>
  8.  #      
  9.  #      This program is free software; you can redistribute it and/or modify
  10.  #      it under the terms of the GNU General Public License as published by
  11.  #      the Free Software Foundation; either version 2 of the License, or
  12.  #      (at your option) any later version.
  13.  #      
  14.  #      This program is distributed in the hope that it will be useful,
  15.  #      but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  #      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  #      GNU General Public License for more details.
  18.  #      
  19.  #      You should have received a copy of the GNU General Public License
  20.  #      along with this program; if not, write to the Free Software
  21.  #      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  22.  #      MA 02110-1301, USA.
  23.  #      
  24.  #      
  25.  #
  26. ############################################################
  27. ## Configurations ##########################################
  28. ############################################################
  29. TITLE="Project manajer"
  30. TMP="/tmp/TMP"
  31. WIDTH="60"
  32. HIGHT="20"
  33. WEB_SERVER_DIRECTORY="/var/www/html/"
  34. SLASH_COUNT_OF_WWW=4
  35. MYSQL_DIRECTORY="/var/lib/mysql/"
  36. SLASH_COUNT_OF_DB=4
  37. BACKUP_DIRECTORY="/home/pesarkhobeee/web_project_manager/"
  38. SLASH_COUNT_OF_BACKUP=4
  39. USER="pesarkhobeee"
  40. ############################################################
  41. ## Functions ###############################################
  42. ############################################################
  43. initial () {
  44.     if [ ! -f $BACKUP_DIRECTORY ]; then
  45.         mkdir $BACKUP_DIRECTORY
  46.     fi
  47. }
  48.  
  49. welcome() {
  50.     MSG1="\n Welcome to Project Manager"
  51.     MSG2="\n By : Farid Ahmadian"
  52.     MSG="$MSG1$MSG2"
  53.  
  54.     dialog  --backtitle "$TITLE"    \
  55.         --title " Welcome "     \
  56.         --msgbox "$MSG" 8 0
  57. }
  58.  
  59. showmenu() {
  60.     dialog  --backtitle "$TITLE"        \
  61.         --title " Main Menu "       \
  62.         --cancel-label "Exit"       \
  63.         --menu              \
  64.         "May I Help You ?" 0 0 5    \
  65.         "1" "Show Web Site Folders"         \
  66.         "2" "Show Archive Web Sites"        \
  67.         "3" "Archive a Web Site"        \
  68.         "4" "Enable a Archive Web Site"         \
  69.         2> $TMP
  70.  
  71.         if [ "$?" == "1" ]; then
  72.             rm $TMP
  73.             clear
  74.             echo "GoodBye !!!"
  75.             exit 0;
  76.         fi
  77.  
  78.         CHOICE=$(cat $TMP)
  79.         rm $TMP
  80. }
  81.  
  82. show_web_site(){
  83.    
  84.     dialog  --backtitle "$TITLE"    \
  85.         --title " $WEB_SERVER_DIRECTORY "   \
  86.         --msgbox "$(ls $WEB_SERVER_DIRECTORY)" 16 0
  87. }
  88.  
  89. show_archive_web_site(){
  90.     dialog  --backtitle "$TITLE"    \
  91.         --title " $BACKUP_DIRECTORY "   \
  92.         --msgbox "$(ls $BACKUP_DIRECTORY)" 16 0
  93. }
  94.  
  95. archive_a_web_site(){
  96.    
  97.    
  98.  
  99.     dialog --dselect $WEB_SERVER_DIRECTORY $HIGHT $WIDTH  2> $TMP
  100.     SELECTED_WEB_DIRECTORY=$(cat $TMP)
  101.     dialog  --dselect $MYSQL_DIRECTORY $HIGHT $WIDTH  2> $TMP
  102.     SELECTED_DB_DIRECTORY=$(cat $TMP)
  103.     dialog  --yesno "are you sure from your selection ? \n $SELECTED_WEB_DIRECTORY \n $SELECTED_DB_DIRECTORY" 0 0
  104.     if [ "$?" == "1" ]; then
  105.         continue
  106.     fi
  107.  
  108.     WWW_FOLDER_NAME=$(echo $SELECTED_WEB_DIRECTORY|cut -d/ -f$(($SLASH_COUNT_OF_WWW+1)))
  109.     cd $BACKUP_DIRECTORY
  110.     mkdir $WWW_FOLDER_NAME
  111.     cd $WWW_FOLDER_NAME
  112.     mkdir www
  113.     mkdir db
  114.     cd $WEB_SERVER_DIRECTORY   
  115.     tar -cjf $BACKUP_DIRECTORY$WWW_FOLDER_NAME"/www/"$WWW_FOLDER_NAME $WWW_FOLDER_NAME 
  116.     cd $MYSQL_DIRECTORY
  117.     DB_FOLDER_NAME=$(echo $SELECTED_DB_DIRECTORY|cut -d/ -f$(($SLASH_COUNT_OF_DB+1)))
  118.     tar -cjf $BACKUP_DIRECTORY$WWW_FOLDER_NAME"/db/"$DB_FOLDER_NAME $DB_FOLDER_NAME
  119.     chown $USER":"$USER $BACKUP_DIRECTORY
  120.     rm -rf $SELECTED_WEB_DIRECTORY
  121.     rm -rf $SELECTED_DB_DIRECTORY
  122.     rm $TMP
  123.  
  124. }
  125.  
  126. enable_a_archive_web_site(){
  127.  
  128.     dialog  --dselect $BACKUP_DIRECTORY $HIGHT $WIDTH  2> $TMP
  129.     cd $BACKUP_DIRECTORY
  130.     SELECTED_DIRECTORY=$(cat $TMP)
  131.     FOLDER_NAME=$(echo $SELECTED_DIRECTORY|cut -d/ -f$(($SLASH_COUNT_OF_BACKUP+1)))
  132.     dialog  --yesno "are you sure you want to extract $FOLDER_NAME ?" 0 0
  133.     if [ "$?" == "1" ]; then
  134.         continue
  135.     fi
  136.     cd $WEB_SERVER_DIRECTORY
  137.     tar -xjf "$BACKUP_DIRECTORY$FOLDER_NAME/www/"$(ls "$BACKUP_DIRECTORY$FOLDER_NAME/www/")
  138.     cd $MYSQL_DIRECTORY
  139.     tar -xjf "$BACKUP_DIRECTORY$FOLDER_NAME/db/"$(ls "$BACKUP_DIRECTORY$FOLDER_NAME/www/")
  140.     rm -rf $BACKUP_DIRECTORY$FOLDER_NAME
  141.     rm $TMP
  142. }
  143.  
  144.  
  145. ############################################################
  146. ## Main ####################################################
  147. ############################################################
  148. welcome
  149. initial
  150. while [ true ]; do
  151.     showmenu
  152.     case "$CHOICE" in
  153.         "1")
  154.             show_web_site
  155.             ;;
  156.         "2")
  157.             show_archive_web_site
  158.             ;;
  159.  
  160.         "3")
  161.             archive_a_web_site
  162.             ;;
  163.         "4")
  164.             enable_a_archive_web_site
  165.             ;;
  166.     esac
  167. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement