95 lines
2.9 KiB
Bash
95 lines
2.9 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
SOFT_PATH="/home/smart"
|
|
SOFT_NAME="SmartOrganizer"
|
|
SERVICE_SCRIPT="SOService"
|
|
SERVICE_NAME="SOS"
|
|
#https://bbt-static-beta.oss-cn-beijing.aliyuncs.com/smart/organizer/SmartOrganizer.zip
|
|
wget -q --no-check-certificate "https://bbt-static-beta.oss-cn-beijing.aliyuncs.com/smart/organizer/SmartOrganizer.zip" -O ${SOFT_PATH}/${SOFT_NAME}.zip
|
|
#cp -r -f /home/smart/install8.5/SmartOrganizer /home/smart/
|
|
|
|
if [[ -z ${SOFT_PATH}/${SOFT_NAME}.zip ]]; then
|
|
echo "Download failed!"
|
|
exit 2
|
|
fi
|
|
|
|
echo "Download successed"
|
|
|
|
unzip -o -qq ${SOFT_PATH}/${SOFT_NAME}.zip -d ${SOFT_PATH}/${SOFT_NAME}
|
|
echo "Unpacking..."
|
|
chmod 700 ${SOFT_PATH}/${SOFT_NAME}/SO*
|
|
chmod 700 ${SOFT_PATH}/${SOFT_NAME}/bin/*
|
|
chmod 700 ${SOFT_PATH}/${SOFT_NAME}/common/*/*
|
|
chmod 700 ${SOFT_PATH}/${SOFT_NAME}/scripts/*
|
|
mkdir -p ${SOFT_PATH}/${SOFT_NAME}/downloads ${SOFT_PATH}/${SOFT_NAME}/tasks
|
|
chmod 777 ${SOFT_PATH}/${SOFT_NAME}/downloads ${SOFT_PATH}/${SOFT_NAME}/tasks
|
|
rm -f ${SOFT_PATH}/${SOFT_NAME}.zip
|
|
echo "DONE!"
|
|
echo "Remove source package"
|
|
|
|
if [[ -f ${SOFT_PATH}/${SOFT_NAME}/init.sh ]];then
|
|
echo "Initializing..."
|
|
/bin/bash ${SOFT_PATH}/${SOFT_NAME}/init.sh
|
|
rm -f ${SOFT_PATH}/${SOFT_NAME}/init.sh
|
|
echo "Initialize Completed!"
|
|
fi
|
|
|
|
if [[ -f ${SOFT_PATH}/${SOFT_NAME}/upgrade.sh ]];then
|
|
rm -f ${SOFT_PATH}/${SOFT_NAME}/upgrade.sh
|
|
echo "Unused script clear Completed!"
|
|
fi
|
|
|
|
# service and restart
|
|
|
|
getSystemVersion()
|
|
{
|
|
releasetmp=`cat /etc/redhat-release | awk -Frelease '{print $2}' | awk -F. '{print $1}' | awk '{print $1}'`
|
|
echo $releasetmp
|
|
}
|
|
|
|
syncSoftwareStatus()
|
|
{
|
|
hostname=$(hostname)
|
|
name="SmartOrganizer"
|
|
version=$(cat ${SOFT_PATH}/${SOFT_NAME}/.version)
|
|
echo "Sync software status: ${hostname}:${name}:${version}"
|
|
curl -sS -D /dev/null -o /dev/null -H "hostname:${hostname}" "https://c.baobaot.com/api/software/sync_status?name=${name}&version=${version}"
|
|
}
|
|
|
|
syncSoftwareStatus
|
|
|
|
if [[ $(getSystemVersion) -eq 6 ]]; then
|
|
echo "current system version is 6"
|
|
service SOS stop
|
|
rm -f /etc/init.d/${SERVICE_NAME}
|
|
ln -s ${SOFT_PATH}/${SOFT_NAME}/${SERVICE_SCRIPT} /etc/init.d/${SERVICE_NAME}
|
|
chkconfig --add ${SERVICE_NAME}
|
|
chkconfig ${SERVICE_NAME} on
|
|
service SOS start
|
|
else
|
|
echo "current system version is > 6"
|
|
systemctl stop ${SERVICE_SCRIPT}
|
|
systemctl disable ${SERVICE_SCRIPT}
|
|
rm -f /usr/lib/systemd/system/${SERVICE_SCRIPT}.service
|
|
|
|
cat > /usr/lib/systemd/system/${SERVICE_SCRIPT}.service <<EOF
|
|
[Unit]
|
|
Description=SOService
|
|
|
|
[Service]
|
|
Type=forking
|
|
Restart=on-failure
|
|
RestartSec=5s
|
|
ExecStart=/bin/bash /home/smart/SmartOrganizer/SOService start
|
|
ExecStop=/bin/bash /home/smart/SmartOrganizer/SOService stop
|
|
ExecRestart=/bin/bash /home/smart/SmartOrganizer/SOService restart
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
systemctl daemon-reload
|
|
|
|
systemctl enable ${SERVICE_SCRIPT}
|
|
systemctl start ${SERVICE_SCRIPT}
|
|
fi
|