1、go項目採用gox進行編譯 先安裝gox包 go get github.com/mitchellh/gox
安裝完成後go -h
查看是否安裝成功,下圖表示安裝成功 node
在你使用 Gox 以前,你必須先有一套交叉編譯工具鏈。Gox 能夠自動幫你完成這個。你須要作的只是運行(每次更新 Go 都要這樣作這步): gox -build-toolchain
下面便可進行交叉編譯,若是你想編譯全部平臺,只需下面命令便可linux
$ gox
Number of parallel builds: 4
--> darwin/386: github.com/mitchellh/gox
--> darwin/amd64: github.com/mitchellh/gox
--> linux/386: github.com/mitchellh/gox
--> linux/amd64: github.com/mitchellh/gox
--> linux/arm: github.com/mitchellh/gox
--> freebsd/386: github.com/mitchellh/gox
--> freebsd/amd64: github.com/mitchellh/gox
--> openbsd/386: github.com/mitchellh/gox
--> openbsd/amd64: github.com/mitchellh/gox
--> windows/386: github.com/mitchellh/gox
--> windows/amd64: github.com/mitchellh/gox
--> freebsd/arm: github.com/mitchellh/gox
--> netbsd/386: github.com/mitchellh/gox
--> netbsd/amd64: github.com/mitchellh/gox
--> netbsd/arm: github.com/mitchellh/gox
--> plan9/386: github.com/mitchellh/gox
複製代碼
由於要在Linux上面運行,因此下面命令進行交叉編譯 gox -osarch="linux/amd64"git
2、後臺運行,採用nohup(下面linux_amd64文件爲上面編譯好的文件)github
nohup ./linux_amd64 > nohup.log 2>&1 &
複製代碼
執行上面命令,項目已經在後臺進行運行,同時在相同目錄生成nohup.log的日誌文件,日誌目錄能夠指定,...> /var/log/nohup.log >...便可,上面最後&符是後臺運行的意思,必須加上。vim
到這裏,go項目就完整的部署運行了,可是nohup.log日誌文件是一個,長時間的話文件內容會很大,很差管理和查看,下面介紹怎麼分割日誌文件。windows
3、用系統自帶Logrotate,按日期分割日誌文件 Logrotate能夠自定義分割日誌的方式,進入下面目錄,建立nohup.logbash
cd /etc/logrotate.d
vim test.log
複製代碼
進入文件進行配置添加便可 看一下主配置文件/etc/logrotate.conf的參數解釋:工具
/var/log/nohup.log #定義/var/log/nohup.log這個日誌文件;
/home/nohup/nohup.log
{
missingok
daily
create 0664 root utmp
notifempty
compress
delaycompress
copytruncate
rotate 2
}
複製代碼
logrotate經常使用參數介紹post
daily #指定轉儲週期爲天天
weekly #指定轉儲週期爲每週;
monthly #指定轉儲週期爲每個月;
rotate count #指定日誌文件刪除以前轉儲的次數,0指沒有備份,5指保留5個備份;
compress #經過gzip壓縮轉儲之後的日誌;
nocompress #不須要壓縮時,用這個參數;
delaycompress #延遲壓縮,和compress一塊兒使用時,轉儲的日誌文件到下一次轉儲時才壓縮;
nodelaycompress #覆蓋delaycompress選項,轉儲同時壓縮;
copytruncate #用於還在打開中的日誌文件,把當前日誌備份並截斷;
nocopytruncate #備份日誌文件可是不截斷;
create mode owner group #轉儲文件,使用指定的文件模式建立新的日誌文件;
nocreate #不創建新的日誌文件;
errors address #專儲時的錯誤信息發送到指定的Email地址;
ifempty #即便是空文件也轉儲,這個是logrotate的缺省選項;
notifempty #若是是空文件的話,不轉儲;
mail address #把轉儲的日誌文件發送到指定的E-mail地;
nomail #轉儲時不發送日誌文件;
olddir directory #轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統;
noolddir #轉儲後的日誌文件和當前日誌文件放在同一個目錄下;
prerotate/endscript #在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行;
postrotate/endscript #在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行;
tabootext [+] list #讓logrotate不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave,v,和~ ;
size size #當日志文件到達指定的大小時才轉儲,Size能夠指定bytes(缺省)以及KB(sizek)或者MB(sizem);
postrotate #日誌輪換事後指定指定的腳本,endscript參數表示結束腳本;
sharedscripts #共享腳本,下面的postrotate中的腳本只執行一次便可;
以上參數均可以已定義在全局配置,或者指定爲某個日誌文件對的配置,但注意使用時參數之間不要衝突。
複製代碼
更詳細的能夠看這篇文章測試
配置完畢,能夠手動如下命令測試一下
/usr/sbin/logrotate -f /etc/logrotate.conf
複製代碼
若是看到相同目錄下
即成功