update.sh 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/bin/env bash
  2. # 创建备份目录,如果不存在
  3. mkdir /root/backup
  4. send=`date '+%Y%m%d-%H%M%S'`
  5. # 压缩media目录下用户上传的图片到备份目录,并按日期命名
  6. tar -czvf /root/backup/media-${send}.tar.gz /root/website/website/media/
  7. # 切换到项目根目录
  8. cd /root/website/website
  9. # 覆盖本地的方式,检出代码
  10. git fetch --all
  11. git reset --hard origin/master
  12. git pull
  13. # 赋予updat命令权限(如果命令更新了,则权限会丢失)
  14. sudo chmod 777 update.sh
  15. sudo chmod 777 zipimg.sh
  16. # 压缩图片 TODO 暂时不需要在更新后,立即压缩图片
  17. #zipimg
  18. # 清理静态资源
  19. rm -rf /root/website/website/collectedstatic
  20. # 收集静态文件,为nginx使用,免输入yes或no,默认yes
  21. /usr/bin/expect <<-EOF
  22. spawn python manage.py collectstatic
  23. send "yes\n"
  24. expect eof
  25. EOF
  26. # 生成数据库升级脚本
  27. python manage.py makemigrations
  28. # 执行数据库升级操作
  29. python manage.py migrate
  30. # 停止和启动memcached缓存服务
  31. systemctl restart memcached
  32. systemctl enable memcached
  33. #systemctl status memcached
  34. # 停止和启动web服务集群
  35. killall -9 uwsgi
  36. nohup uwsgi --ini uwsgi.ini & ls
  37. # 停止和启动nginx
  38. systemctl restart nginx
  39. #systemctl status nginx
  40. # 产看启动的集群进程,好放心
  41. #ps -ef | grep uwsgi
  42. # 回到之前的目录
  43. cd -
  44. ls