echo "$(date +%Y-%m-%d\ %H:%M:%S) - ${program_name} is running normally." >> "${log_file}"
时间: 2024-04-27 14:22:01 浏览: 14
这是一个 shell 脚本命令,用于将当前时间和程序名记录到指定的日志文件中。其中,date +%Y-%m-%d\ %H:%M:%S 表示获取当前时间并格式化为年-月-日 时:分:秒的形式,program_name 表示程序名称,log_file 表示日志文件路径。通过 >> 操作符可以将日志追加到文件末尾。
相关问题
if ps aux | grep "${program_name}" | grep -v grep > /dev/null; then echo "$(date +%Y-%m-%d\ %H:%M:%S) - ${program_name} is running normally." >> "${log_file}" else echo "$(date +%Y-%m-%d\ %H:%M:%S) - ${program_name} is not running. Please check it." >> "${log_file}" fi我要每六十秒检查一次要怎么修改
您可以使用`sleep`命令来等待一定的时间后再进行下一次检查,例如:
```
while true; do
if ps aux | grep "${program_name}" | grep -v grep > /dev/null; then
echo "$(date +%Y-%m-%d\ %H:%M:%S) - ${program_name} is running normally." >> "${log_file}"
else
echo "$(date +%Y-%m-%d\ %H:%M:%S) - ${program_name} is not running. Please check it." >> "${log_file}"
fi
sleep 60
done
```
这个脚本将会每隔60秒执行一次`if`语句,并根据程序是否在运行中输出相应信息。注意,这个脚本将会一直执行下去,直到您手动终止它。
#!/bin/bashLOG_FILE="/path/to/log.txt"PROGRAM_NAME="my_program"TODAY=$(date +"%Y-%m-%d")# Check if program is runningif ps ax | grep -v grep | grep "$PROGRAM_NAME" >/dev/nullthen echo "$(date "+%Y-%m-%d %H:%M:%S"): $PROGRAM_NAME is running normally" >> "$LOG_FILE.$TODAY"else echo "$(date "+%Y-%m-%d %H:%M:%S"): $PROGRAM_NAME is not running" >> "$LOG_FILE.$TODAY"fi# Check if log file is older than 7 days and delete the oldest dayif test `find "$LOG_FILE"* -mtime +6`then rm -f "$LOG_FILE.$(date --date="7 days ago" +"%Y-%m-%d")"fi我的意思在这个脚本里面每天12点运行一次要直接加里面就可以了吗
是的,你可以将这个脚本保存在一个文件中然后将cron定时任务的配置直接入到脚本中。你需要在脚本的开头加入定时任务配置,即:
```
0 12 * * * /path/toyour_script.sh
```
其中,`/path/your_script.sh`是你保存脚本的。这样,当你运行这个脚本时,它就会被添加到crontab中,并且会在每天的0时12分执行一次。需要注意的是,如果你使用这种方式添加定时任务,可能会导致定时任务被重复添加,所以最好在运行脚本之前先检查一下crontab中是否已经存在相同的定时任务。