首页 >社区问答列表 >linux中如何编写shell脚本才能在本地一键发布在远程服务器上的代码?

linux中如何编写shell脚本才能在本地一键发布在远程服务器上的代码?

由于前段时间gitlat的服务器误操作导致数据大量丢失事件,让我深深感到了在服务器上直接敲命令的风险,所以我想尽量减少登上服务器的次数,由此引出这个问题。

场景:现在我发布 服务器的代码都是直接登上服务器然后运行发布脚本(publish.sh)文件才完成新代码的发布的,那我如何将这个操作转移到我本地呢,系统OS X。

我的想法是写一个脚本文件,然后ssh命令连上服务器,然事呢有个问题,通常ssh连上后是交互界面,我想完成的是直接就本地一步发布 如: /usr/local/publish xxx项目 。 但是我在shell没看到完成类似需求的命令。

并且我还有一个问题,我如何在本地直接对线上数据库进行一个操作呢(查询/更新/新增),因为线上数据库通常有做安全IP校验,所以通常只能直接登录上服务器去敲sql命令,但是这也是风险很大的一个操作,如果不小心delete from table 就不是那么好了(虽然有热恢复数据工具),如何更安全的,通过脚本传参(或类似)的方式操作数据库呢?


  • 大家讲道理
  • 大家讲道理    2017-02-13 15:19:541楼

    可以利用github的webhook,检测到有push动作,就自动拉取代码。

    权限最小

    你登录服务器/数据库的是一个普通用户,压根没有rm/drop权限,怎么会删除文件/数据呢……

    备份

    尝试危险操作之前,先备份;

    每隔一段时间,就全量/增量备份;

    还要确认备份可用。


    +0添加回复

  • 回复