Linux系统之bash脚本和定时任务练习
-
1.编写一个Bash脚本,能够监控指定名称的进程(例如 nginx 或 sshd)。
-
如果进程存在,则输出其PID和状态信息
-
如果进程不存在,则自动尝试重启该进程(可假设进程启动命令已知),并记录日志(包含时间戳)
-
[root@ubuntu24-13 ~ ]# cat process_station.sh
-
! /bin/bash
-
jincheng mingzi
-
PROCESS_NAME="sshd"
-
jincheng chongqi
-
START_CMD="systemctl restart ssh"
-
rizhi wenjian cuncui
-
LOG_FILE="/var/log/process_station.log"
-
huoqu dangqian
-
get_time() {
-
date "+%Y-%m-%d %H:%M:%S"
-
}
-
jiance jincheng shifoucunzai
-
PIDS=$(pidof "${PROCESS_NAME}")
-
if [ -n "$PIDS" ];
-
then
-
echo "[$(get_time)] jinchengshi [${PROCESS_NAME}]" | tee -a $
-
else
-
echo "[$(get_time)] jinchengbucunzai [${START_CMD}]" | tee -a $
-
fi
-
2.设计一个周期性任务:
-
每周日凌晨3点自动清理 /tmp 目录下超过7天的临时文件
-
每天中午12点记录当前系统进程数、内存使用量到 /var/log/system_health.log
-
[root@ubuntu24-13 ~ ]# cat crontab
-
0 3 * * 0 root /usr/bin/find /tmp -type f -mtime +7 -delete >> /var/log/tmp_clean.log 2>&1
-
0 12 * * * root $(/bin/ps -ef |/usr/bin/wc -l) >> /var/log/system_health.log
-
0 12 * * * root $(/usr/bin/free -m) >> /var/log/system_health.log

浙公网安备 33010602011771号