当你看见免费的东东就一直想要,导致Serv00从S1赛季到S7赛季注册了很多账号,又不想一个一个登录去设置Cron job和上传保活脚本,那这个脚本你就能用上了:
#!/bin/bash
echo "开始 SSH 连接尝试"
# S1-User1
echo "正在尝试连接到 s1.serv00.com,用户名:User1(连接:S1-User1)"
sshpass -p 'PASSWORD' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt [email protected] 'echo "Hello from S6-User1"; date; sleep 10'
echo "S6-User1 连接成功!"
sleep 3
# S2-User2
echo "正在尝试连接到 s2.serv00.com,用户名:User2(连接:S2-User2)"
sshpass -p 'PASSWORD' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt [email protected] 'echo "Hello from S6-User2"; date; sleep 10'
echo "S6-User2 连接成功!"
sleep 3
# S6-User3
echo "正在尝试连接到 s6.serv00.com,用户名:User3(连接:S6-User3)"
sshpass -p 'PASSWORD' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt [email protected] 'echo "Hello from S6-User3"; date; sleep 10'
echo "S6-User3 连接成功!"
sleep 3
# S7-User4
echo "正在尝试连接到 s7.serv00.com,用户名:User4(连接:S7-User4)"
sshpass -p 'PASSWORD' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt [email protected] 'echo "Hello from S7-User4"; date; sleep 10'
echo "S7-User4 连接成功!"
echo "所有 SSH 连接尝试已完成。"
sleep 3
echo "脚本运行完毕,正在退出..."
sleep 3
exit 0
把里面的s7.serv00.com改为你的赛季地址(连不上的话可改为web7.serv00.com),User1和PASSWORD分别改为你对应赛季的用户名密码,保存为xxx.sh,上传到任何一台能运行sh脚本的主机,设置定时任务运行即可。比如用宝塔,或者Serv00都行。注意下,Serv00的定时任务列表有时会被清空.
运行成功效果是这样的:
开始 SSH 连接尝试
正在尝试连接到 s6.serv00.com,用户名:User1(连接:S6-User1)
Warning: Permanently added 's6.serv00.com' (ED25519) to the list of known hosts.
Hello from S6-User1
Thu Jul 25 17:00:53 CEST 2024
Connection to s6.serv00.com closed.
S6-User1 连接成功!
正在尝试连接到 s6.serv00.com,用户名:User2(连接:S6-User2)
Warning: Permanently added 's6.serv00.com' (ED25519) to the list of known hosts.
Hello from S6-User2
Thu Jul 25 17:01:32 CEST 2024
Connection to s6.serv00.com closed.
S6-User2 连接成功!
正在尝试连接到 s6.serv00.com,用户名:User3(连接:S6-User3)
Warning: Permanently added 's6.serv00.com' (ED25519) to the list of known hosts.
Connection reset by 85.194.242.89 port 22
S6-User3 连接成功!
正在尝试连接到 s7.serv00.com,用户名:User4(连接:S7-User4)
Warning: Permanently added 's7.serv00.com' (ED25519) to the list of known hosts.
Hello from S7-User4
Thu Jul 25 17:04:16 CEST 2024
Connection to s7.serv00.com closed.
S7-User4 连接成功!
所有 SSH 连接尝试已完成。
脚本运行完毕,正在退出...
改进了下:
- 为每个 SSH 连接添加了
timeout 30
命令,设置了 30 秒的超时时间。 - 在每个 SSH 连接后添加了错误处理:
- 如果返回码是 124,表示连接超时。
- 如果返回码不是 0 且不是 124,表示连接失败。
- 如果返回码是 0,表示连接成功。
#!/bin/bash
echo "开始 SSH 连接尝试"
# S6-
echo "正在尝试连接到 s6.serv00.com,用户名:********(连接:S6-*******)"
timeout 30 sshpass -p ******** ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt ********@s6.serv00.com 'echo "Hello from S6-*******"; date; sleep 10'
if [ $? -eq 124 ]; then
echo "错误:S6-******* 连接超时"
elif [ $? -ne 0 ]; then
echo "错误:S6-******* 连接失败"
else
echo "S6-******* 连接成功!"
fi
sleep 3
# S6-
echo "正在尝试连接到 s6.serv00.com,用户名:**(连接:S6-**)"
timeout 30 sshpass -p ******** ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt **@s6.serv00.com 'echo "Hello from S6-**"; date; sleep 10'
if [ $? -eq 124 ]; then
echo "错误:S6-** 连接超时"
elif [ $? -ne 0 ]; then
echo "错误:S6-** 连接失败"
else
echo "S6-** 连接成功!"
fi
sleep 3
# S6-
echo "正在尝试连接到 s6.serv00.com,用户名:******(连接:S6-******)"
timeout 30 sshpass -p ******** ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt ******@s6.serv00.com 'echo "Hello from S6-******"; date; sleep 10'
if [ $? -eq 124 ]; then
echo "错误:S6-****** 连接超时"
elif [ $? -ne 0 ]; then
echo "错误:S6-****** 连接失败"
else
echo "S6-****** 连接成功!"
fi
sleep 3
# S7-
echo "正在尝试连接到 s7.serv00.com,用户名:***(连接:S7-***)"
timeout 30 sshpass -p ******** ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt ***@s7.serv00.com 'echo "Hello from S7-***"; date; sleep 10'
if [ $? -eq 124 ]; then
echo "错误:S7-*** 连接超时"
elif [ $? -ne 0 ]; then
echo "错误:S7-*** 连接失败"
else
echo "S7-*** 连接成功!"
fi
echo "所有 SSH 连接尝试已完成。"
sleep 3
echo "脚本运行完毕,正在退出..."
sleep 3
exit 0