fuck-xuexiqiangguo / Fuck-XueXiQiangGuo

学习强国 懒人刷分工具 自动学习
MIT License
8.34k stars 1.8k forks source link

希望能增加个自动刷新功能 #493

Open hitagi159753 opened 4 years ago

hitagi159753 commented 4 years ago

搞了个服务器,想挂着一劳永逸,结果过了0点还得自己手动关闭软件再打开,白天试试用计划任务能不能搞

ec000 commented 4 years ago

用crontab自动运行

bobyjx commented 4 years ago

我给你写了个脚本linux,保存为sh可运行。

!/bin/bash

echo -ne "\033[?25l" app_name=xxxx #软件名称(写需要启动的软件名称) app_path=./ #软件路径 username=xxxxxxx #用户名(xxx替换为自己的) passwd=xxxxxxx #密码(xxx替换为自己的) t_min_h=75 #间隔最小时间(75为7.5小时) t_max_h=80 #间隔最大时间(80为8小时)

function start() { exec $app_path$app_name --appname=$app_name >/dev/null 2>&1 &

exec $app_path$app_name --username=$username --passwd=$passwd --appname=$app_name >/dev/null 2>&1 &

#echo -ne "正在启动..... "
#sleep 10
echo -ne "\033[1A"
echo -ne "\r     \r" #清除本行文字

}

function kill_PROCESS() {
ps -aux | grep $app_name | grep -v grep | awk {'print $2'} | xargs kill -2
}

function random() { min=$1; max=$2-$1; num=$(date +%s+%N); ((retnum=num%max+min)); echo $retnum; }

main()
{
t_min=$(($t_min_h606))
t_max=$(($t_max_h606))
cd dirname $0 count=0 while [ 1 ] ; do propserverpid=ps -aux | grep $app_name | grep -v grep | awk {'print $2'}
if [ ! "$propserverpid" ] then
seconds_left=$(random t_min t_max) dd=date '+%Y-%m-%d %H:%M:%S' dd2=date -d "$dd" '+%Y-%m-%d %H:%M:%S' dd3=date -d "$dd2" '+%s' dd3=expr $dd3 + $seconds_left time=$(date -d "1970-01-01 UTC "$dd3" seconds" +"%Y-%m-%d %H:%M:%S") start echo "=======================================================" echo "刷新次数 :${count} " echo "程序启动 :${dd}" echo "下次刷新 :${time}" while [ $seconds_left -gt 0 ];do dd5=date '+%Y-%m-%d %H:%M:%S' hh=$(($seconds_left/60/60)) mm=$((($seconds_left-($hh6060))/60)) ss=$(($seconds_left-($hh6060)-($mm*60))) echo "系统时间 :${dd5} " echo "运行剩余 :${hh}h ${mm}m ${ss}s (共计:${seconds_left}秒) " sleep 1 seconds_left=$(($seconds_left - 1)) echo -ne "\033[1A" echo -ne "\r \r" #清除本行文字 echo -ne "\033[1A" echo -ne "\r \r" #清除本行文字 done count=$(($count + 1))
else dd4=date '+%Y-%m-%d %H:%M:%S' kill_PROCESS echo "程序结束 :${dd4}" echo "=======================================================" sleep 600 fi done
}
main