shell 判断文件是否为.log
时间: 2024-04-11 09:30:11 浏览: 9
题目要求编写脚本2,完成以下要求:
编写httpd检测脚本,判断httpd是否正常运行。如果无法访问或运行失败将自动重启服务,每隔100秒检测一次。当启动服务失败时,在/var/log/shell.log文件中记录日志。
具体来说,这个脚本需要周期性地检查httpd服务是否正常运行,如果未运行或运行失败,则自动重启服务。检测频率为每隔100秒检测一次,并且在/var/log/shell.log文件中记录日志,以帮助跟踪问题和进行故障排除。
相关问题
shell脚本中,如果存在access.log文件,则对该文件进行备份,备份名称为access.log_bak_当前时间
好的,针对你的问题,可以使用如下的shell脚本来实现:
```
#!/bin/bash
# 判断access.log是否存在
if [ -f "access.log" ]; then
# 获取当前时间
current_time=$(date "+%Y%m%d_%H%M%S")
# 备份access.log文件
cp access.log access.log_bak_$current_time
fi
```
该脚本首先使用`-f`选项判断当前目录下是否存在`access.log`文件,如果存在,则获取当前时间,并将`access.log`文件备份为`access.log_bak_当前时间`的格式。备份文件名中的时间格式为`年月日_时分秒`。如果`access.log`文件不存在,则不进行备份操作。
希望这个答案能够帮到你!
使用linux下的shell编程,创建 /home/backup.sh 文件,实现以下功能: 1、判断 /home/backup 目录是否存在,不存在则创建 2、每天0:00自动备份 /var/log/Xorg.0.log 文件到 /home/backup/ 目录下,并将文件重命名,格式为 Xorg_年月日.log(如 Xorg_20230524.log),将此文件的权限设置为644(此配置内容写在 backup.sh 文件的第二行,并注释) 3、删除 /var/log/Xorg.0.log 文件,并创建 /var/log/Xorg.0.log 空文件
以下是 backup.sh 文件的代码实现:
```bash
#!/bin/bash
# 每天0:00自动备份 /var/log/Xorg.0.log 文件到 /home/backup/ 目录下,并将文件重命名,格式为 Xorg_年月日.log
# 将此文件的权限设置为644
# 判断 /home/backup 目录是否存在,不存在则创建
if [ ! -d "/home/backup" ]; then
mkdir /home/backup
fi
# 备份文件
cp /var/log/Xorg.0.log /home/backup/Xorg_$(date +%Y%m%d).log
chmod 644 /home/backup/Xorg_$(date +%Y%m%d).log
# 删除 /var/log/Xorg.0.log 文件,并创建 /var/log/Xorg.0.log 空文件
rm /var/log/Xorg.0.log
touch /var/log/Xorg.0.log
```
可以使用 crontab 工具将 backup.sh 文件设置为每天 0:00 自动执行备份操作。在终端中输入 `crontab -e` 命令,打开 crontab 编辑器,添加以下内容:
```
0 0 * * * /bin/bash /home/backup.sh
```
保存并退出编辑器,这样就可以实现每天 0:00 自动备份 /var/log/Xorg.0.log 文件到 /home/backup/ 目录下,并将文件重命名,格式为 Xorg_年月日.log,同时删除 /var/log/Xorg.0.log 文件,并创建 /var/log/Xorg.0.log 空文件的功能。