暫略,待補充
### 啟動腳本
```
#! /bin/bash
# system=(amd64|386)
system='amd64'
# 系統啟動用戶 用#注釋或者為空默認為root賬戶
user='blockgo'
#臨時文件夾
tmp_path='/tmp/gogs'
# gogs 路徑
gog_path='/home/blockgo/gogs'
# gogs git庫
gog_git_url='https://github.com/gogs/gogs/releases'
# 備份目錄
gog_backup_path="${gog_path}/backup"
nowtime=`date +'%Y%m%d_%s'`
function start_service() {
if [[ `ps aux|grep gogs|grep -v 'grep'|grep 'web'|awk '{print $2}'` != '' ]];then
echo "檢測到服務正在運行中...跳過啟動"
else
# gogs web -port 3001 ./gogs/gogs web -port 51776
#sudo -u ${user} nohup $gog_path/gogs/gogs web -port 51776 >$gog_path/gogs.log 2>&1 &
nohup ./gogs/gogs web -port 51776 >$gog_path/gogs.log 2>&1 &
#echo "-u ${user} nohup $gog_path/gogs/gogs web -port 51776 >$gog_path/gogs.log 2>&1 &"
if [[ $? != '0' ]];then
echo "啟動失敗"
else
echo "Gogs啟動完成"
fi
fi
}
function status_service() {
pid=`ps aux|grep gogs|grep -v 'grep'|grep 'web'|awk '{print $2}'`
if [[ $pid == '' ]];then
echo "Gogs服務未啟動"
else
echo "Gogo服務啟動了, 進程:$pid"
fi
}
function logs_service() {
tail -f $gog_path/gogs.log
}
function stop_service() {
pid=`ps aux|grep gogs|grep -v 'grep'|grep 'web'|awk '{print $2}'`
if [[ $pid == '' ]];then
echo "Gogs服務未啟動"
else
kill -9 $pid
if [[ $? != '0' ]];then
echo "停止失敗"
else
echo "停止完成"
fi
fi
}
function backup() {
if [[ `ps aux|grep gogs|grep -v 'grep'|grep 'web'|awk '{print $2}'` != '' ]];then
echo "檢測到服務正在運行中. 開始停止"
stop_service
fi
rm -rf $gog_backup_path
if [ ! -d $gog_backup_path ];then
mkdir $gog_backup_path -p
else
echo "無法刪除備份目錄."
fi
cp -R $gog_path/gogs $gog_backup_path/gog_${nowtime}
if [[ $? != '0' ]];then
echo "備份出錯.請檢查日志"
exit 1
fi
}
function download() {
# 獲取路徑并下載
if [ ! -f "${tmp_path}/${remote_version}.tar.gz" ];then
remote_file=`curl -s $gog_git_url |grep $remote_version|grep $system.tar.gz|awk -F'"' '{print $2}'`
if [[ $remote_file == '' ]];then
echo "未獲取到下載路徑"
exit 1
fi
if [ ! -d $tmp_path ];then
mkdir $tmp_path -p
fi
echo "https://github.com/${remote_file} -O ${tmp_path}/${remote_version}.tar.gz"
wget -T 10 https://github.com/${remote_file} -O ${tmp_path}/${remote_version}.tar.gz
if [[ $? != '0' ]];then
echo "下載出錯.重新下載"
download
fi
fi
}
function update(){
download
stop_service
backup
rm -rf $gog_path/gogs
if [ ! -d $gog_path ];then
mkdir $gog_path -p
fi
tar zxvf ${tmp_path}/${remote_version}.tar.gz -C $gog_path
if [[ $? != '0' ]];then
echo "解壓出錯.重新下載遠端壓縮包"
rm -f ${tmp_path}/${remote_version}.tar.gz
download
fi
cp -R $gog_backup_path/gog_${nowtime}/custom $gog_path/gogs/
cp -R $gog_backup_path/gog_${nowtime}/data $gog_path/gogs/
cp -R $gog_backup_path/gog_${nowtime}/log $gog_path/gogs/
start_service
}
function check_update() {
# 獲取本地版本號
local_version=`$gog_path/gogs/gogs -v|awk '{print $3}'`
if [[ $local_version == '' ]];then
echo "未獲取到本地版本號"
exit 1
fi
# 獲取遠端版本號
remote_version=`curl -s $gog_git_url |grep releases/tag|awk -F'[<|>]' '{print $3}'|head -n1`
if [[ $remote_version == '' ]];then
echo "未獲取到遠端最新版本號"
exit 1
fi
# 對比版本號
if [[ $remote_version > $local_version ]];then
echo "有版本更新"
echo "本地版本:$local_version 遠端版本: $remote_version"
update
else
echo "不需要更新"
echo "本地版本:$local_version 遠端版本: $remote_version"
fi
}
function install(){
remote_version=`curl -s $gog_git_url |grep releases/tag|awk -F'[<|>]' '{print $3}'|head -n1`
if [[ $remote_version == '' ]];then
echo "未獲取到遠端最新版本號"
exit 1
fi
download
tar zxvf ${tmp_path}/${remote_version}.tar.gz -C $gog_path
if [[ $? != '0' ]];then
echo "解壓出錯.重新下載遠端壓縮包"
rm -f ${tmp_path}/${remote_version}.tar.gz
download
fi
start_service
}
# 指定用戶執行,判斷用戶是否正確
if [[ "$user" == '' ]];then
user='root'
fi
if [[ `id|awk -F '[(|)]' '{print $2}'` != "$user" ]];then
echo "請在$user賬戶下執行此腳本"
exit
fi
case $1 in
install )
echo "安裝Gogs服務"
install
;;
update )
echo "檢測Gogs更新"
check_update
;;
start )
echo "啟動Gogs服務"
start_service
;;
stop )
echo "停止Gogs服務"
stop_service
;;
restart )
echo "重啟Gogs服務"
stop_service
start_service
;;
status )
echo "查看Gogs進程"
status_service
;;
logs )
echo "實時Gogs日志"
logs_service
;;
* )
echo "請使用參數: update | start | stop | restart | status | logs"
exit
;;
esac
```
- 服務工具
- Go編程
- 開始
- 入門
- Java編程
- Spring編程
- SpringBoot編程
- SpringCloud編程
- 服務組件
- 環境瀏覽
- 版本查看
- 新建用戶和用戶組
- 初始化腳本
- 通用組件
- 安裝Zookeeper
- 安裝Jdk
- 安裝Go
- 安裝Nginx
- 安裝Git
- 安裝Maven
- 安裝RabbitMQ
- 安裝Node
- 容器部署
- 安裝Docker
- 安裝DockerCompose
- 安裝Redis
- 安裝Jenkins
- 安裝Zookeeper
- 安裝zentao
- 數據庫搭建
- 安裝MySQL
- 安裝Oracle
- OSS存儲搭建
- 安裝MinIO
- 私服存儲搭建
- 安裝Gogs
- 安裝Gitlab
- 安裝Harbor
- 服務中心
- 高可用
- 配置中心高可用
- eureka注冊中心高可用
- consul注冊中心高可用
- nacos注冊中心高可用
- 服務應用
- 微服務
- 單體服務
- 微信小程序
- 服務助手
- 比對工具
- 快速查詢工具
- Postman工具
- 代碼生成工具
- 數據庫設計生成工具
- 服務生產
- 前端部署
- 后端部署
- 服務監控
- 鏈路監控
- Zipkin
- Pinpoint
- Skywarking
- ELK日志收集
- 服務企業
- 分表分庫
- 任務調度
- XXL-JOB
- 緩存管理
- 文件系統
- 七牛云
- 阿里云
- Fastdfs
- MinIO
- MongoDB
- 聚合文檔
- 灰度發布