Advertisement
Guest User

Untitled

a guest
Apr 21st, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. RULES_FILE=/etc/backup.rules
  4. HOSTNAME=`hostname`
  5. BACKUP_DIRECTORY="/root/backup"
  6. BACKUP_FILE_NAME="`date +%d-%m-%Y`.tgz"
  7.  
  8. [ -f "~/.backuprc" ] && ~/.backuprc
  9.  
  10. [ ! -d "$BACKUP_DIRECTORY" ] && mkdir -p $BACKUP_DIRECTORY
  11.  
  12. function help() {
  13. echo "Usage: $0";
  14. }
  15.  
  16. function list() {
  17. [ -f "$RULES_FILE" ] && cat $RULES_FILE || echo "$RULES_FILE: No such file or directory use -e option"
  18. }
  19.  
  20. function edit() {
  21. mcedit $RULES_FILE
  22. [ -f "$RULES_FILE" ] && chmod 600 $RULES_FILE
  23. }
  24.  
  25. function make() {
  26. [ -f "$RULES_FILE" ] && . $RULES_FILE || echo "$RULES_FILE: No such file or directory use -e option"
  27. }
  28.  
  29. function to_log(){
  30. [ ! -z "$1" ] && echo "$1"
  31. }
  32.  
  33. function backup_dir() {
  34.  
  35. [ $# -le 1 ] && exit 1;
  36.  
  37. prefix=$1
  38. src_dir=${@#${prefix}}
  39. #path=${path## }
  40. #src_dir=${@//${prefix}/}
  41.  
  42. tar -zcf "$BACKUP_DIRECTORY/$prefix-$BACKUP_FILE_NAME" $src_dir > /dev/null 2>&1
  43. return $?
  44. }
  45.  
  46. function backup_postgres(){
  47. database=$1
  48. user=$2
  49. password=$3
  50.  
  51. if [ -z "$database" ] || [ -z "$user" ]; then
  52. to_log "Не все параметры заполнены"
  53. return 1
  54. fi;
  55.  
  56. tmp="/tmp/pg-database-$database-`date +%s`.sql"
  57.  
  58. /usr/bin/pg_dump -U $user -f $tmp $database
  59. if [ $? -ne 0 ]; then
  60. to_log "Не удалось создать резервную копию"
  61. return 1
  62. fi;
  63.  
  64. tar -zcf "$BACKUP_DIRECTORY/pg-db-$database-$BACKUP_FILE_NAME" "$tmp" > /dev/null 2>&1
  65. ret=$?
  66. rm -f "$tmp"
  67. return $ret
  68. }
  69.  
  70. function backup_mysql(){
  71. database=$1
  72. user=$2
  73. password=$3
  74.  
  75. if [ -z "$database" ] || [ -z "$user" ]; then
  76. to_log "Не все параметры заполнены"
  77. return 1
  78. fi;
  79.  
  80. tmp="/tmp/mysql-database-$database-`date +%s`.sql"
  81.  
  82. mysqldump -u$user --password=$password $database > $tmp
  83. if [ $? -ne 0 ]; then
  84. to_log "Не удалось создать резервную копию"
  85. return 1
  86. fi;
  87.  
  88. tar -zcf "$BACKUP_DIRECTORY/mysql-db-$database-$BACKUP_FILE_NAME" "$tmp" > /dev/null 2>&1
  89. ret=$?
  90. rm -f "$tmp"
  91. return $ret
  92. }
  93.  
  94.  
  95. function backup_purge() {
  96.  
  97. [ $# -le 1 ] && exit 1;
  98.  
  99. days=$1
  100. path=${@#${days}}
  101. path=${path## }
  102.  
  103. #echo $days
  104.  
  105. if [ -d "$path" ]; then
  106. find $path -type f -mtime +$days -exec rm -f {} \;
  107. fi
  108. }
  109.  
  110. i=1
  111. for n in $@; do
  112. let i=i+1
  113. #group=\$${i};
  114. case "$n" in
  115. -l|--list) list; exit;;
  116. -h|--help) help; exit;;
  117. -e|--edit) edit; exit;;
  118. -m|--make) make; exit;;
  119. esac
  120. done
  121.  
  122. edit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement