学习&记录

好好学习,天天向上

0%

serv00保活

通过执行定时任务,链接ssh进行保活并用日志记录,下面是代码

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
LOG_FILE="./activelogfile.log"

echo "开始 SSH 连接尝试" | tee -a $LOG_FILE

# 定义一个函数来处理 SSH 连接
function try_ssh_connection {
local server=$1
local user=$2
local password=$3
local label=$4

echo "正在尝试连接到 $server,用户名:$user(连接:$label)" | tee -a $LOG_FILE
timeout 30 sshpass -p $password ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt $user@$server "echo \"Hello from $label\"; date; sleep 10" 2>&1 | tee -a $LOG_FILE
result=${PIPESTATUS[0]}
if [ $result -eq 124 ]; then
echo "错误:$label 连接超时" | tee -a $LOG_FILE
elif [ $result -ne 0 ]; then
echo "错误:$label 连接失败" | tee -a $LOG_FILE
else
echo "$label 连接成功!" | tee -a $LOG_FILE
fi
sleep 3
}

# 调用函数进行 SSH 连接尝试
try_ssh_connection "主机地址" "用户名" "密码" "成功提示"
try_ssh_connection "主机地址2" "用户名" "密码" "成功提示"

echo "所有 SSH 连接尝试已完成。" | tee -a $LOG_FILE
sleep 3
echo "脚本运行完毕,正在退出..." | tee -a $LOG_FILE
sleep 3
exit 0

定时任务设置

可以使用 cron 来实现。以下是具体步骤:

首先使用pwd获取执行文件目录,比如是/root下的active_.sh文件

1. 编辑 crontab 文件

使用 crontab -e 命令编辑当前用户的 crontab 文件。

1
sudo crontab -e

2. 添加定时任务

crontab 文件中添加一行,指定每天早上六点执行 /root/active_.sh 脚本。

1
0 6 * * * /root/active_.sh

3. 保存并退出

编辑完成后,保存并退出编辑器。crontab 文件将被更新,新的定时任务将开始生效。

4. 验证定时任务

使用 crontab -l 命令查看当前用户的所有定时任务:

1
sudo crontab -l

示例

  1. 编辑 crontab 文件

    1
    sudo crontab -e
  2. 添加定时任务

    1
    0 6 * * * /root/active_.sh
  3. 保存并退出
    保存并退出编辑器。

  4. 验证定时任务

    1
    sudo crontab -l

解释

  • 0 6 * * *:表示每天早上六点(06:00)执行任务。
    • 0:分钟(0-59)
    • 6:小时(0-23)
    • *:日期(1-31)
    • *:月份(1-12)
    • *:星期几(0-7,其中0和7都表示星期日)

@XR 原文链接