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

posted @ 2026-04-26 22:03  kevin-579  阅读(19)  评论(0)    收藏  举报