-
Notifications
You must be signed in to change notification settings - Fork 0
/
qubic.sh
197 lines (180 loc) · 5.11 KB
/
qubic.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
core=$(nproc)
wallet='eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJJZCI6ImM4NjVjNmU1LTBiOTQtNDdjNC04NzBkLThmNTRkOTQ5NzgzMiIsIk1pbmluZyI6IiIsIm5iZiI6MTcxMDgxNzEyNSwiZXhwIjoxNzQyMzUzMTI1LCJpYXQiOjE3MTA4MTcxMjUsImlzcyI6Imh0dHBzOi8vcXViaWMubGkvIiwiYXVkIjoiaHR0cHM6Ly9xdWJpYy5saS8ifQ.nWdx6dQ-v9unua_BMm3MXk3SIjHZye9qfs_GIutZauOAHEDRRyH7UG2MMznVX6kCKPEtE-v7e-sOg891Cz3sqw'
name=''
RQINER_RLS="https://api.github.com/repos/Qubic-Solutions/rqiner-builds/releases/latest"
is_root() {
if [ $(id -u) == 0 ]; then
echo -e "进入安装流程"
sleep 3
else
echo -e "==================警告==================="
echo -e "请切使用root用户执行脚本, 命令: sudo su"
exit 1
fi
}
get_system() {
source '/etc/os-release'
if [[ "${ID}" == "debian" && ${VERSION_ID} -ge 9 ]]; then
echo -e "检测系统为 debian"
apt update
elif [[ "${ID}"=="ubuntu" && $(echo "${VERSION_ID}" | cut -d '.' -f1) -ge 18 ]]; then
echo -e "检测系统为 ubuntu"
apt update
elif [[ "${ID}"=="centos" ]]; then
echo -e "centos fuck out!"
exit 1
else
echo -e "当前系统为 ${ID} ${VERSION_ID} 不在支持的系统列表内"
exit 1
fi
}
input_param() {
echo -e "========================================"
echo -e "=======CPU核心数(max:${core})"
read -rp "请输入: " core
echo -e "========================================"
read -rp "是否手动填写Token(Y/N): " wr_token
case $wr_token in
[Yy])
echo -e "========================================"
echo -e "=======账号Token: ${wallet}"
echo -e "=======钱包地址: ZCTLTDWENTGPABZKMRLGXKKRXNXAONTLZGZCYDWEIBQMJUITAQBGRWSFWDHN"
read -rp "请输入: " wallet
;;
*)
;;
esac
echo -e "========================================"
echo -e "=======标识名称:"
read -rp "请输入: " name
}
input_param_arm() {
wallet="ZCTLTDWENTGPABZKMRLGXKKRXNXAONTLZGZCYDWEIBQMJUITAQBGRWSFWDHN"
echo -e "========================================"
echo -e "=======CPU核心数(max:${core})"
read -rp "请输入: " core
echo -e "========================================"
read -rp "是否手动填写Token(Y/N): " wr_token
case $wr_token in
[Yy])
echo -e "========================================"
echo -e "=======钱包地址: ZCTLTDWENTGPABZKMRLGXKKRXNXAONTLZGZCYDWEIBQMJUITAQBGRWSFWDHN"
read -rp "请输入: " wallet
;;
*)
;;
esac
echo -e "========================================"
echo -e "=======标识名称:"
read -rp "请输入: " name
}
install() {
apt update
apt purge needrestart -y
apt install libc6
apt install -y g++-11
wget -O qli-Service-install-auto.sh https://dl.qubic.li/cloud-init/qli-Service-install-auto.sh
chmod u+x qli-Service-install-auto.sh
./qli-Service-install-auto.sh ${core} ${wallet} ${name}
systemctl restart qli
}
install_arm() {
CPUQuota="CPUQuota=${core}00%"
apt-get install tar curl
cd /root
download_url=$(curl -sL $RQINER_RLS | grep "browser_download_url" | cut -d '"' -f 4 | grep "rqiner-aarch64" | grep -v "mobile")
curl -L "$download_url" -o qli
chmod u+x qli
cat > /etc/systemd/system/qli.service << EOF
[Unit]
Description=rqiner service
[Service]
ExecStart=/root/qli -t ${core} -i ${wallet} --label ${name}
StandardOutput=append:/var/log/qli.log
StandardError=append:/var/log/err.qli.log
Restart=always
${CPUQuota}
Nice=10
CPUWeight=1
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl restart qli
}
optimize_sys() {
hugepage=$[$(nproc)*600/2]
sed -i '/vm.nr_hugepages=/d' /etc/sysctl.conf
echo "vm.nr_hugepages=$hugepage" >> /etc/sysctl.conf
/usr/sbin/sysctl -w vm.nr_hugepages=${hugepage}
}
arch() {
cpu_arch=$(uname -m)
if [ "$cpu_arch" = "aarch64" ]; then
echo -e "检测系统为 ARM"
run_arm
else
run
fi
}
arch_update() {
cpu_arch=$(uname -m)
if [ "$cpu_arch" = "aarch64" ]; then
echo -e "检测系统为 ARM"
update_arm
else
update
fi
}
run() {
is_root
get_system
input_param
optimize_sys
install
}
run_arm() {
is_root
get_system
input_param_arm
optimize_sys
install_arm
}
update_arm() {
is_root
systemctl stop qli
cd /root
download_url=$(curl -sL $RQINER_RLS | grep "browser_download_url" | cut -d '"' -f 4 | grep "rqiner-aarch64" | head -n1)
curl -L "$download_url" -o qli
chmod u+x qli
systemctl start qli
}
update() {
is_root
systemctl stop qli
cp /q/appsettings.json /q/appsettings.json.bak
wget -O qli-Service-install-auto.sh https://dl.qubic.li/cloud-init/qli-Service-install-auto.sh
chmod u+x qli-Service-install-auto.sh
./qli-Service-install-auto.sh 1 1 1
mv /q/appsettings.json.bak /q/appsettings.json
systemctl start qli
}
onekey() {
is_root
get_system
core="$1"
name="$2"
wallet="$3"
install
}
case $1 in
onekey)
onekey $2 $3 $4
;;
update)
arch_update
;;
*)
arch
;;
esac