solo网站开发好帮手icyonline和icygit

大家在solo web开发的时候总会遇到这样或那样的问题,至少在我开发的时候,会遇到两个比较蛋疼的问题:

  • 网站在线上之后想要更改代码需要考虑是否影响线上服务,需要一套上线回滚的系统,而开源的上线系统大多对于个人来说过于臃肿
  • 代码在开发时需要频繁地进行迭代的开发和回滚,而git或svn在这种情况下却又显得没有必要,因为并没有和其他人合作,所以分支根本用不到,而修改代码时如果产生冲突大家都知道是一件很蛋疼的事,其实我需要的只是一个归档系统而已

而我在很多时候的单人开发有这两个特点:

  • 开发机和线上机器是同一台
  • 机器的内存和存储空间都非常有限

在搭建我的博客系统时,由于面对这两个问题,我开发了自己的归档和上线脚本,实际应用起来非常方便,但是当时并没有进行通用化处理,直到最近,更多的需要上线的服务才让我发现将这两个脚本通用化的必要性,于是我终于把这两个脚本给通用化了。

大家可以直接拷贝下面的命令来获取这两个脚本,这两个脚本之间不存在依赖关系,所以单独使用也是可以的。

获取icyonline

mkdir  ~/bin;wget www.icybee.cn/file/icyonline -O ~/bin/icyonline;chmod +x ~/bin/icyonline

获取icygit

mkdir  ~/bin;wget www.icybee.cn/file/icygit -O ~/bin/icygit;chmod +x ~/bin/icygit

使用icyonline

执行上面的命令获取icyonline,然后你需要一个开发路径和一个线上路径,还有就是一个存放备份文件(用于回滚)的路径

icyonline init

在开发路径下执行命令 icyonline init,脚本会产生两个文件:icyonline.conf和build.sh
在icyonline.conf中可以配置线上路径,开发路径和备份路径,而build.sh 中用于编写一些上线之后的操作,比如关闭调试模式,删除某些调试代码等。

icyonline online

在开发路径下执行这个命令将会产生几个行为:

  • 备份线上路径的代码
  • 将开发代码上线
  • 执行build.sh

这个流程将会安全地上线你的代码

icyonline rollback

回滚线上代码,程序会让你选择回滚到哪个版本,假如上线之后代码出现问题,你会需要这个功能

使用icygit

icygit的使用和icyonline类似

icygit init

在当前目录初始化icygit,产生两个文件:icygit.conf和build_icygit.sh
在icygit.conf 中你可以配置备份路径和开发路径,在build_git.sh中你可以写一些回滚之后希望发生的操作。

icygit commit

提交一个版本的代码,commit 之后可以跟自己命名的版本号,代码将会被备份至备份路径

icygit rollback

和icyonline的rollback类似,将会回滚代码到指定的版本