美文网首页前端工程化
自动化部署项目到服务器

自动化部署项目到服务器

作者: 帅而不花__美而不浪 | 来源:发表于2017-07-02 14:55 被阅读0次

    如果你准备上传项目到服务器(ftp 或者 Sftp服务器Sftp和ftp 区别、工作原理等(汇总ing)),那么开始阅读吧,希望会对你有所帮助。

    这里介绍两种方式:

    1. 利用 Webstorm自带的部署方式
    2. 编写 Shell脚本的方式

    方式一、Webstrom

    参考 如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作,Sftp同理,只需要切换一下对应的类型即可,

    这里写图片描述

    方式二、Shell

    提示Linux命令大全,下面涉及到的命令这里都有。

    Sftp:

    先决条件:

    需要解决的两个问题:

    1. 自动登录到服务器(保证脚本执行不中断)
    2. 切换到服务器环境(保证操作服务器中文件)

    1、自动登录到服务器

    解决方式:ssh-keygen的使用方法及配置authorized_keys两台linux机器相互认证,有的同学可能有多个私钥(已经生成过Github私钥),可以参照多个 SSH KEY 的管理 进行生成。

    2、切换到服务器环境(Here Document

    解决方式:Linux Shell远程执行命令(命令行与脚本方式)

    脚本:

    进入到要上传的项目目录中,

    # 移除本地压缩文件
    rm -rf dist.tar.gz
    
    # 压缩文件,其中 dist为要上传的文件所在目录
    tar -zcvf dist.tar.gz dist/
    
    # 上传到服务器(需要输入密码,如果已经进行过私钥配置,则不用),其中/home/savoygu/gusaifei 为上传文件所在目录
    scp  -r dist.tar.gz root@47.93.xxx.xxx:/home/savoygu/gusaifei
    
    # 登录到服务器(需要输入密码,如果已经进行过私钥配置,则不用)
    # 服务器环境开启
    ssh root@47.93.xxx.xxx << EOF
    
    # 进入目标目录
    cd /home/savoygu/gusaifei
    # 解压
    sudo tar -zxvf dist.tar.gz --strip-components 1
    # 移除线上压缩文件
    sudo rm -rf 
    
    exit
    EOF
    # 服务器环境结束
    echo 上传完成!
    

    ftp:

    参考:ftp自动上传下载文件(Shell脚本)及ftp命令详解

    脚本(文件上传):

    进入到要上传的项目目录中,

    ftp -n<<!  
    # open 服务器ip
    open 47.93.xxx.xxx  
    # user 用户名 密码
    user savoygu ******
    binary  
    # 上传至服务器指定目录
    cd /home/savoygu/gusaifei  
    # 要上传的本地目录
    lcd ./dist
    prompt  
    mput *.*
    close  
    bye  
    !  
    

    提示Linux命令大全,上面涉及到的命令这里都有。

    相关文章

      网友评论

        本文标题:自动化部署项目到服务器

        本文链接:https://www.haomeiwen.com/subject/svwncxtx.html