SSH下自动备份到本地及利用lftp上传到SFTP空间

2013.07.28 分享 14464 人浏览 10 条留言

折腾了几个钟才搞出来的东西,必须备份下,有空真的学学linux命令

  1. #!/bin/bash
  2. echo "Working... Code by LiuWeili WWW.COBMW.COM..."
  3. #从这里开始编辑
  4. MYSQL_USER=^^^   #mysql用户名
  5. MYSQL_PASS=^^^   #mysql密码
  6. WEB_DATA=^^^   #要备份的网站数据目录
  7. BACKUP=^^^   #备份至本地目录
  8. DB_NAME=^^^   #备份指定数据库名称
  9. #SFTP设置
  10. USERNAME=^^^   #SFTP用户名
  11. PASSWORD=^^^   #SFTP密码
  12. HOST=^^^  #SFTP主机
  13. SFTPBACKUP=^^^   #备份至SFTP远程目录
  14. #停止编辑
  15. #定义数据库的名字
  16. DataBakName=Datass_$(date +"%Y%m%d").tar.gz
  17. WebBakName=Web_$(date +%Y%m%d).tar.gz
  18. #删除本地30天前的数据
  19. rm -rf $BACKUP/Datass_$(date -d -30day +"%Y%m%d").tar.gz $BACKUP/Web_$(date -d -30day +"%Y%m%d").tar.gz
  20. cd $BACKUP/
  21. #导出用户下所有数据库,一个数据库一个压缩文件
  22. #for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
  23. # (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
  24. #done
  25. #导出指定数据库
  26. for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
  27. (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS $DB_NAME | gzip -9 - > $DB_NAME.sql.gz)
  28. done
  29. #压缩数据库文件为一个文件
  30. tar zcf $BACKUP/$DataBakName $BACKUP/*.sql.gz
  31. rm -rf $BACKUP/*.sql.gz
  32. #压缩网站数据
  33. tar zcf $BACKUP/$WebBakName $WEB_DATA
  34. #上传至SFTP
  35. lftp -u $USERNAME,$PASSWORD sftp://$HOST <<EOF
  36. cd $SFTPBACKUP
  37. rm -rf $SFTPBACKUP/Datass_$(date -d -30day +"%Y%m%d").tar.gz
  38. put $BACKUP/$DataBakName
  39. put $BACKUP/$WebBakName
  40. bye
  41. EOF
  42. echo "Done... See you next time."

表示完全不熟悉linux的我能折腾出这些,已经感到很满足了。。。

别小看这几句短短的代码,菜鸟的我可是试了4个小时了(囧)...

有了上面的代码,就可以利用ssh自动备份俺的数据咯,也就不仅限制于备份在ftp上,备份到sftp也搞定了...

上面其实只是一个sh代码,当然需要添加每天自动执行的命令,这里我就不说了,百度去吧

附:

Dibian安装lftp命令

  1. sudo apt-get install lftp

Centos安装lftp命令

  1. yum install -y lftp

附:安装sendmail函数

  1. apt-get install sendmail sendmail-bin  

文章地址:http://huilang.me/ssh-uploadto-sftp/

“SSH下自动备份到本地及利用lftp上传到SFTP空间” 有 10 条评论

  1. 爱的回归线说道:

    这个真的是鸟文…我一句都不想去看

  2. 小雨说道:

    Dropbox 不爱你 = =

  3. kslr说道:

    30天貌似有点长了,十几个G就出来了 :smile:

  4. Kslr说道:

    表示不能回复

  5. Kslr说道:

    com被个基督教电台买了 :x ,还不出售
    我就只能用net,期待他忘记续费的一天。

回复本文

电子邮件地址不会被公开。 必填项已用*标注

icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif