分享一个简单的项目管理脚本,有待于补充,欢迎指正
前提说明
本文使用的部署工具使用的是pm2,项目存储在GitHub, 因此脚本主要做的的事情就是从GitHub上拉取最新的代码进行本地部署,项目服务的启动、关闭、重启、重载配置文件(pm2)
脚本功能
- 启动服务
- 关闭服务
- 重启服务
- 重载配置文件
- 更新项目
- 帮助说明
脚本内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| #!/bin/bash myapp_path=~/projectPath # 项目路径 cd ${myapp_path} pid=$(ps -ef |grep node|grep -v grep|awk '{print $2}') # 获取项目进程号 start(){ if [ -z ${pid} ] then pm2 start pm2.json else echo -e "\E[1;32;40mAPP now at starting......"; tput sgr0 fi } stop(){ if [ -z ${pid} ] then echo -e "\E[1;31;40mAPP have been stop."; tput sgr0 else pm2 stop pm2.json fi } restart(){ pm2 restart pm2.json } reload(){ pm2 reload pm2.json } refresh(){ git pull npm run compile restart } help(){ cat<<EOF USE GUIDE
1.启动 $ myapp start 2.关闭 $ myapp stop 3.重启 $ myapp restart 4.重载配置文件 $ myapp reload 5.更新项目 $ myapp refresh
EOF } main(){ if [ $# -ne 1 ];then help exit 1 fi case $1 in "start") start ;; "stop") stop ;; "restart") restart ;; "refresh") refresh ;; "reload") reload ;; *) help ;; esac } main $@
|
总结
通过shell编写一些脚本,可以减少我们工作当中经常重复的工作,对于运维工作者是一种必不可少的技能了,当然本文展示的知识一些简单的操作,如果需要更加自动化部署项目,我们可以考虑使用GitHub上的webhook功能
附录
jenkins
瓦力上线部署
Comparison of continuous integration software