Linux

02
June
Jenkins + Docker 构建自己的自动化部署
当你写完代码后,点下push按钮,不到一会你的线上应用就完成了更新并且运行了起来,这就是完美的工作流。准备流程这样的工作流也称自动化部署,具体的流程:开发人员推送代码到git仓库git仓库触发webhook请求build服务器build服务器执行构建任务build服务器打包docker并push到docker仓库build服务器登录生产服务器,停止旧服务,pull新镜像并运行要构建这么一套自动化部署,我们需要有:git仓库构建服务器docker镜像仓库生产服务器git仓库github,码云,或者私有的gitea、gitlab都是可行的。构建服务器构建过程通常会占用较多的服务器资源,如果服...
167
2020/06/02
04
Nov
Spring boot 部署脚本
之前的外包项目我都使用的Jenkins自动部署,但是Jenkins本身也是一个Java应用,还挺吃内存,我个人服务器只有1G的内存,跑Jenkins会很吃力,况且还用不到几次,所以直接写一个脚本半自动部署了,这里简单记录一下。#!/bin/bash # 打包环境 env=prod # 端口 port=9002 jar_name=*-${env}-*.jar # 项目运行目录 running_path=./running echo "开始拉取项目" git pull echo "项目拉取完毕" pid=$(netstat -nlp | gre...
238
2019/11/04
12
May
Linux更改为密钥登录
今天登录服务器发现有将近一万个登陆失败的提示,明摆着被人盯上了。。。于是将服务器的登录方式改为了RSA密钥登录。生成密钥首先是要生成密钥,我直接使用的XShell生成,另存为文件用openssl命令行程序生成的话记得公钥格式为SSH2-OpenSSH,即ssh-rsa开头配置服务器进入/home/用户名/.ssh文件夹,如果是root用户就是/root/.ssh。添加authorized_keys文件,已存在就下一步。touch authorized_keys更改文件权限为600。chmod 600 authorized_keys将公钥文件复制到目录内,使用>>追加到auth...
581
2019/05/12
07
May
CentOS7 部署Gitea
GiteaGithub私有仓库已经免费很久了,但是协同开发只能三人,再往上就要交钱了,如果自己有服务器的话,在服务器上搭一个gitea也是很不错的,能省下不少钱。gitea是一款易搭建,运行快的Git服务器应用,比起Gitlab动辄4个G的内存占用,gitea一般保持在100M内存消耗以内。但是功能比起Gitlab要少许多,但是已经够基本的使用了,跟Github差不多。安装流程数据库的安装配置我用的是Mysql,相信大多数人也都是Mysql,数据库的安装不介绍了,需要手动创建一个gitea库,如果有必要的话,也可以为gitea分配一个数据库用户。安装Git包管理器直接安装#Debian和...
1,591
2019/05/07
28
Feb
VUE单页面网站 历史模式路径刷新404
VUE项目的URL一般都会带有一个#,开启历史模式history mode后就可以去掉。但是这样会有一个问题,当我们部署后,访问一个非主页的路径,比如www.xxxxx.com/login ,会报出404错误。这是因为VUE中的URL都是虚假的,实际是不存在的,自然会报404,所以我们需要调整下该项目文件夹下的URL重写rewrite。下面以Apache为例(因为我没用过Nginx)确定开启了mod_rewrite模式开启方式不详述了,Centos7的模块配置默认在/etc/httpd/conf.modules.d。开启网站文件夹的AllowOverride找到对应网站的配置Virtua...
1,145
2019/02/28
26
Feb
使用php和Github webhook实现自动部署
一般情况下,我们每次在使用Github时,每次push完代码后,都要手动到服务器上git pull一次,如果是vue之类的项目还要npm i和npm build。 当然我们可以写sh脚本来进行部署,但这仍免不了我们要上服务器操作。程序员就是为了懒而生的,我们可以通过Github的webhook功能来实现push完后直接部署的爽快。以下操作均在Centos7上进行为Apache或Nginx配置用户和组这里以Apache为例,已经配置了的请绕道。[scode type="lblue"]合理的配置用户权限,才能规避一系列的权限问题,也能保证服务器的安全。[/scode]首先是创建用户和组,在r...
1,010
2019/02/26
15
Oct
ubuntu搭建EOS环境
eos钱包项目需要对接eos钱包,在这里记录一下搭建的过程。eos钱包和btc,eth不大相同,eos的钱包由三部分组成nodeos,keosd和cleosnodeosnodeos是运行在服务端的区块链节点组件,是EOSIO系统的核心进程,可以通过它运行一个节点。keosdkeosd就是EOSIO的钱包管理客户端,可以被认为是一个存储公钥-私钥的仓库,同时管理钱包信息。nodeos与keosd之间并不存在必然关联,只有在需要签名时它们才会产生联系,例如为交易签名。有一点要注意的是,nodeos已经包含了keosd的完整功能,也就是说在nodeos上也可以管理钱包。cleoscleos是用...
1,507
2018/10/15
07
Sep
Linux使用screen执行长时间运行的任务
当我们用SSH或者telent登录到远程服务器后,在执行例如websocket之类的需要长时间运行任务的时候,如果此时断开链接,正在进行的任务也会被强制终止。在Linux/Unix中,有这样几个概念:进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程的ID。会话期可以有一个单独的控制终端(controlling terminal)。与控制终端连接的会话期首进程叫做控制进程(controlling pr...
1,350
2018/09/07
10
June
Linux下编写脚本自动向WindowsServer和Onedrive备份
趁着还是学生入了阿里云的9.5学生服务器,配置比我90块的日本服务器还好_(:з)∠)_(赞美祖国,因为日本服务器使用了Centos7,国内这台就选择了windows server 2012。毕竟国外服务器,哪天被墙了就操蛋了,于是打算写一个shell脚本定时备份,并传给国内的windows服务器。我的备份主要是备份我的一些站点还有seafile的文件,当然还有数据库,将他们备份到一起打包成zip再发送出去下面是Shell脚本:首先声明bash解释器,写在脚本第一行#!/bin/bas定义仨变量,时间,当前路径和备份路径time=` date +%Y%m%d%H%M` curdir=$(...
1,039
2018/06/10