This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
nezha-nz-talon/tools/afterinstall.sh
2022-03-31 10:44:28 +08:00

94 lines
2.1 KiB
Bash

#!/bin/sh
# Find Java
if [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then
JAVA_EXE="$JAVA_HOME/bin/java"
elif type -p java > /dev/null 2>&1; then
JAVA_EXE=$(type -p java)
elif [[ -x "/usr/bin/java" ]]; then
JAVA_EXE="/usr/bin/java"
else
echo "Unable to find Java"
JAVA_EXE="java"
# exit 1
fi
# install
if [ 1 -eq $1 ];then
cat > /usr/lib/systemd/system/nz-talon.service <<EOF
[Unit]
Description=nz-talon
After=network.target
[Service]
WorkingDirectory=/opt/nezha/nz-talon
ExecStart=/opt/nezha/nz-talon/xjar ${JAVA_EXE} -Dnz-agent.dir=/opt/nezha/nz-talon -jar /opt/nezha/nz-talon/nz-talon.xjar
RestartSec=5s
Restart=always
[Install]
WantedBy=multi-user.target
EOF
cat > /usr/lib/systemd/system/promtail.service <<"EOF"
[Unit]
Description=nz-talon
After=network.target
[Service]
WorkingDirectory=/opt/nezha/promtail
EnvironmentFile=/opt/nezha/promtail/config.conf
ExecStart=/opt/nezha/promtail/promtail $OPTION
RestartSec=5s
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable nz-talon && systemctl restart nz-talon
systemctl enable promtail && systemctl restart promtail
echo 'install nz-talon success !'
fi
compareMD5()
{
if [ ! -f $1 ] || [ ! -f $2 ];then
echo 1
return 1
fi
local f1MD5=`md5sum $1|awk '{print $1}'`
local f2MD5=`md5sum $2|awk '{print $1}'`
if [ ${f1MD5} = ${f2MD5} ];then
echo 0
return 0
else
echo 1
return 1
fi
}
# update
if [ 2 -eq $1 ];then
TALON_PATH=/opt/nezha/nz-talon
TMP_PATH=/tmp/nezha/nz-talon
PROMTAIL_PATH=/opt/nezha/promtail
echo 'move backup config file...'
if [ -d $TMP_PATH ];then
# 恢复 nz-talon 配置文件
for i in $(ls $TALON_PATH/config);do
if [ 1 -eq `compareMD5 $WEB_PATH/config/$i $TMP_PATH/config/$i` ];then
echo 'return config file '${i}
cp -f $TMP_PATH/config/$i $TALON_PATH/config/$i
fi
done
# 恢复 promtail 配置文件
for n in $(ls $TMP_PATH/promtail);do
if [ -f "$PROMTAIL_PATH/$n" ];then
echo 'return config file '${n}
cp -f $TMP_PATH/promtail/$n $PROMTAIL_PATH/$n
fi
done
fi
systemctl restart nz-talon
systemctl restart promtail
fi