MST
星途 面试题库

面试题:Bash定时任务的复杂场景处理

假设你有一个脚本,它需要每周一到周五的上午9点到下午5点之间,每隔2小时执行一次,且执行前需要检查系统内存使用率,如果内存使用率超过80%则不执行。请使用Bash和Cron实现这个定时任务需求,给出完整的Cron配置和脚本代码。
39.3万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
  1. Bash脚本代码(假设脚本名为check_and_run.sh
#!/bin/bash

# 获取内存使用率
memory_usage=$(free -h | awk 'NR==2{printf "%.2f", ($3/$2)*100}')

# 判断内存使用率是否超过80%
if (( $(echo "$memory_usage > 80" | bc -l) )); then
    echo "Memory usage ($memory_usage%) exceeds 80%. Skipping execution."
else
    # 这里放置需要执行的实际任务代码
    echo "Memory usage ($memory_usage%). Executing task..."
fi
  1. Cron配置: 要实现每周一到周五的上午9点到下午5点之间,每隔2小时执行一次,在终端输入以下命令编辑Cron配置:
crontab -e

然后添加以下内容:

0 9,11,13,15 * * 1-5 /path/to/check_and_run.sh

其中/path/to/check_and_run.sh需要替换为你实际存放check_and_run.sh脚本的路径。上述Cron配置表示在每周一到周五的9点、11点、13点、15点执行check_and_run.sh脚本。