前言
在幫人設定goproxy代理伺服器時,本來在VM上跑。
但未來應該還是要再GKE上面執行的,所以先解析一下他這套是怎麼安裝的,
之後才有辦法在GKE上執行。
正文
#!/bin/bash
F="proxy-linux-amd64.tar.gz"
set -e
if [ -e /tmp/proxy ]; then
rm -rf /tmp/proxy
fi
mkdir /tmp/proxy
cd /tmp/proxy
echo -e "\n>>> downloading ... $F\n"
manual="https://snail.gitee.io/proxy/manual/"
LAST_VERSION=$(curl --silent "https://mirrors.host900.com/https://api.github.com/repos/snail007/goproxy/releases/latest" | grep -Po '"tag_name":"\K.*?(?=")')
wget -t 1 "https://mirrors.host900.com/https://github.com/snail007/goproxy/releases/download/${LAST_VERSION}/$F"
echo -e ">>> installing ... \n"
# #install proxy
tar zxvf $F >/dev/null
set +e
killall -9 proxy >/dev/null 2>&1
set -e
cp -f proxy /usr/bin/
chmod +x /usr/bin/proxy
if [ ! -e /etc/proxy ]; then
mkdir /etc/proxy
cp blocked /etc/proxy
cp direct /etc/proxy
fi
if [ ! -e /etc/proxy/proxy.crt ]; then
cd /etc/proxy/
proxy keygen -C proxy >/dev/null 2>&1
fi
rm -rf /tmp/proxy
version=`proxy --version 2>&1`
echo -e ">>> install done, thanks for using snail007/goproxy $version\n"
echo -e ">>> install path /usr/bin/proxy\n"
echo -e ">>> configuration path /etc/proxy\n"
echo -e ">>> uninstall just exec : rm /usr/bin/proxy && rm -rf /etc/proxy\n"
echo -e ">>> How to using? Please visit : $manual\n"
幾個不常用到的指令
-
tar :解壓縮
-
/dev/null ,這個在linux上面表示 黑洞,不做任何處理。
所以 tar zxvf $F > /dev/null
表示說,解壓縮$F的檔案,但不印出任何的訊息 -
set -e 在 "set -e"之後出現的代碼,一旦出現了返回值非零,整個腳本就會立即退出。
-
set +e 在 "set +e"之後出現的代碼,一旦出現了返回值非0,腳本還是會繼續執行
-
if -e …判斷此目標是否存在,存在回true
ref.
- “> /dev/null 2>&1” 的意思
- 學習筆記: shell 中的 set -e , set +e 用法
- What does “if [ -e $name ]” mean? Where $name is a path to a directory
0 意見:
張貼留言