Advertisement
Guest User

Untitled

a guest
Apr 5th, 2017
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. #!/bin/sh
  2. # Script pentru backup remote prin ftp
  3. # Dependente: mysql,mysqldump,gzip,curlftpfs
  4. #
  5. # Autor: Alex Duzsardi alex[dot]duzsardi[at]pitechplus[dot]com
  6. # www.pitechplus.com
  7. # ---------------------------------------------------------------------
  8.  
  9. ### Variabile si configuratii ###
  10.  
  11. ### MySQL ###
  12. MUSER="root"
  13. MPASS="<MYSQL PASSWD>"
  14. MHOST="localhost"
  15. MYSQL="$(which mysql)"
  16. MYSQLDUMP="$(which mysqldump)"
  17. GZIP="$(which gzip)"
  18. DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases' | grep -Ev 'schema|mysql')"
  19.  
  20. ### FTP ###
  21. LFTPDIR=/srv/ftpbackup
  22. RFTPDIR="<FTP DIR>"
  23. FTPU="<FTP USER>"
  24. FTPP="<FTP PASSWD>"
  25. FTPS="<FTP SERVER>"
  26. NCFTP="$(which ncftpput)"
  27.  
  28. ### Mail ###
  29. EMAILADDR="<ADMIN EMAIL>"
  30. MSG=/tmp/msg.txt
  31. SUBJ=''
  32.  
  33. ### Altele ###
  34. DIRS="/etc/ /var/www/sites/"
  35. NOW=$(date +"%d-%m-%Y")
  36. BACKUP=/tmp/backup.$$
  37. RMDATE=$(date +"%d-%m-%Y" -d '6 days ago')
  38. RMBACKUP="${LFTPDIR}/backup/${RMDATE}"
  39.  
  40. _sendMail(){
  41. mail -s "$SUBJ" -r "Name <noreply@domain.com>" "$EMAILADDR" <$MSG
  42. }
  43.  
  44. _makeBackupFS(){
  45. [ ! -d $BACKUP ] && mkdir -p $BACKUP || :
  46.  
  47. d=$(date +"%Hh%Mm%Ss")
  48. FILE="fs-$NOW-$d.tar.gz"
  49. tar -zcvf $BACKUP/$FILE $DIRS
  50.  
  51. if [ "$?" != "0" ]; then
  52. SUBJ="Backup failed"
  53. echo "Date: $(date)">$MSG
  54. echo "Hostname: $(hostname)" >>$MSG
  55. echo "Backing up filesystem directories failed: $DIRS" >>$MSG
  56. _sendMail
  57. rm -f $MSG
  58. [ -d $BACKUP ] && rm -r $BACKUP || :
  59. fi
  60.  
  61. }
  62.  
  63. _makeBackupSQL(){
  64.  
  65. for db in $DBS
  66. do
  67. FILE=$BACKUP/mysql-$db.$NOW-$d.gz
  68. $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
  69. done
  70.  
  71. if [ "$?" != "0" ]; then
  72. SUBJ="Backup MySQL failed"
  73. echo "Date: $(date)">$MSG
  74. echo "Hostname: $(hostname)" >>$MSG
  75. echo "Backing up MySQL databases failed: $DBS" >>$MSG
  76. _sendMail
  77. rm -f $MSG
  78. fi
  79.  
  80. }
  81.  
  82. _makeFtpUpload(){
  83. ncftp -u"$FTPU" -p"$FTPP" $FTPS<<EOF
  84. mkdir $RFTPDIR/$NOW
  85. cd $RFTPDIR/$NOW
  86. lcd $BACKUP
  87. mput *
  88. cd $RFTPDIR
  89. quit
  90. EOF
  91. rm -r $BACKUP
  92.  
  93. }
  94.  
  95. _cleanOldBackup(){
  96.  
  97. curlftpfs ftp://$FTPU:$FTPP@$FTPS $LFTPDIR
  98. if [ "$?" != "0" ]; then
  99. SUBJ="Mount FTP dir failed"
  100. echo "Date: $(date)">$MSG
  101. echo "Hostname: $(hostname)" >>$MSG
  102. echo "Could not mount ftp://$FTPU:$FTPP@$FTPS in $LFTPDIR" >>$MSG
  103. _sendMail
  104. rm -f $MSG
  105. else
  106. [ -d $RMBACKUP ] && rm -r $RMBACKUP || :
  107. umount $LFTPDIR
  108. fi
  109.  
  110. }
  111.  
  112. # Run functions
  113. _makeBackupFS
  114. _makeBackupSQL
  115. _makeFtpUpload
  116. _cleanOldBackup
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement