有域名了网站怎么做,wordpress评论滑动插件,查企业网站有哪些,国家信用信息公示网文章目录 ⭐️背景#x1f3c6;处理流程查看进程清理日志文件重启服务 #x1f496;问题总结#x1f44d;完整处理方案清理日志脚本自动重启服务计划任务定时清理日志文件定时重启服务 开机启动定时任务 ⭐️背景
部署在客户服务器项目无法访问#xff0c;最后发现服务器上… 文章目录 ⭐️背景处理流程查看进程清理日志文件重启服务 问题总结完整处理方案清理日志脚本自动重启服务计划任务定时清理日志文件定时重启服务 开机启动定时任务 ⭐️背景
部署在客户服务器项目无法访问最后发现服务器上的eureka 和zuul 挂啦服务报错。宕机原因为日志文件占用大量磁盘服务器重启。
在服务器运维中定时任务是一项非常重要的工作可以帮助我们清理不必要的日志文件定期重启服务以确保系统的稳定性和性能。本文将介绍如何使用 Linux 的定时任务功能来清理日志文件并自动重启服务。
处理流程
查看进程
在开始设置定时任务之前我们首先需要查看运行中的进程确保我们定时任务的操作不会影响到正在运行的服务。使用以下命令查看特定进程比如这里以查看名为 eureka 的进程为例
ps aux | grep eureka具体参数说明 ps aux: 显示当前系统中所有用户的所有进程的详细信息。grep eureka: 过滤包含 “eureka” 字符串的行。 清理日志文件
应用程序的日志文件可能会变得非常庞大影响磁盘空间。为了解决这个问题我们可以定期清空日志文件。下面的命令将清空指定的日志文件这里以 nohup.out 为例
echo nohup.out具体参数说明 echo “”: 输出一个空字符串。: 重定向运算符将左边的输出覆盖写入到右边指定的文件中。nohup.out: 文件名这里是将输出写入到 nohup.out 文件。 重启服务
nohup java -jar -Xms512m -Xmx512m cloud-eureka.jar /opt/app/eureka/logs/ 21 具体参数说明 nohup: 用于让命令在后台运行并且即使终端关闭也不会被挂起。这对于长时间运行的进程如Java应用程序很有用。java -jar -Xms512m -Xmx512m cloud-eureka.jar: 启动Java应用程序 cloud-eureka.jar设置初始堆大小为512MB-Xms512m和最大堆大小为512MB-Xmx512m。/opt/app/eureka/logs/: 指定日志文件的目录这是Java应用程序的日志输出路径。 21: 将标准错误输出stderr重定向到标准输出stdout。这样所有输出都会被追加到日志文件中。: 在命令末尾添加 表示将该命令放到后台运行。 问题总结
服务本地日志没有定时清理造成机器重启机器重启之后服务没有自动重启
完整处理方案
清理日志脚本
创建shell脚本
# 新建一个可执行文件
touch /opt/java/auto-del-7-days-ago-log.sh
# 分配可运行权限
chmod x /opt/java/auto-del-7-days-ago-log.sh# 执行之后的文件
-rwxr-xr-x 1 root root 215 11月 30 16:57 auto-del-7-days-ago-log.sh
-rwxr-xr-x 1 root root 619 11月 30 17:09 auto-start-common-server.sh-rwxr-xr-x 表示这是一个普通文件root用户具有读、写和执行权限root组中的其他用户和其他用户具有读和执行权限但没有写权限 第一个字符 - 表示这是一个普通文件。如果是目录该字符将是 d。后续的九个字符 rwxr-xr-x 表示文件的权限。每组三个字符分别表示读r、写w和执行x权限。 rwx 表示文件所有者root用户具有读、写和执行权限。 r-x 表示文件组成员root组中的其他用户具有读和执行权限但没有写权限。 r-x 表示其他用户不属于root组的用户具有读和执行权限但没有写权限。 auto-del-7-days-ago-log.sh 脚本内容
find /opt/java/zuul/logs/ -mtime 30 -name *.log -exec rm -rf {} \;
find /opt/java/eureka/logs/ -mtime 30 -name *.log -exec rm -rf {} \;echo /opt/app/zuul/nohup.out
echo /opt/app/eureka/nohup.out脚本具体说明 find /opt/java/eureka/logs/: 在指定目录下查找文件。-mtime 30: 匹配修改时间在30天之前的文件。-name “*.log”: 匹配文件名以 .log 结尾的文件。-exec rm -rf {} ;: 对于每个匹配到的文件使用 rm -rf 命令进行删除。-rf 参数表示强制删除即使文件是只读的也不会提示确认删除。echo /opt/app/eureka/nohup.out: 使用 echo 命令将一个空字符串输出到 /opt/app/eureka/nohup.out 文件中。 自动重启服务
同样创建脚本auth-start-common-server.sh
#!/bin/bash
countps -ef |grep eureka|grep -v grep | wc -l;
echo count $count$flag
if [ $count -gt 0 ]
thenecho eureka app is running!
elseecho eureka app is stopcd /opt/app
nohup java -jar -Xms512m -Xmx512m cloud-eureka.jar /opt/app/eureka/logs/ 21 echo eureka app start
fi脚本具体说明 count$(ps -ef | grep ‘eureka’ | grep -v “grep” | wc -l): 这一行使用ps命令列出所有进程然后使用grep来过滤包含字符串 ‘eureka’ 的行接着使用grep -v grep来排除 grep 进程本身最后通过 wc -l 统计匹配行的数量并将结果保存在变量 count 中。echo count c o u n t ′ ′ count count′′flag: 这一行将匹配到的进程数量输出到标准输出包括一个额外的 $flag 变量这里看起来没有定义 $flag可能是脚本其他部分的变量。if [ $count -gt 0 ] then … else … fi: 这是一个条件语句根据 $count 的值来判断是否有进程正在运行。如果 $count 大于 0则输出 “eureka app is running!”否则进入 else 分支。cd /opt/app: 进入 /opt/app 目录这可能是应用程序的工作目录。nohup java -jar -Xms512m -Xmx512m cloud-eureka.jar /opt/app/eureka/logs/ 21 : 启动 Java 应用程序 cloud-eureka.jar使用 nohup 命令让应用程序在后台运行并将输出重定向到 /opt/app/eureka/logs/ 目录中的文件。echo ‘eureka app start’: 输出一条信息表明 eureka 应用程序已经启动。 计划任务 在Linux系统中crond 是一个后台进程负责执行用户预定的任务这些任务可以是定期执行的脚本、命令或其他可执行文件。crond 是基于时间的任务调度程序通常被称为cron守护进程。 crontab -l:列表显示计划任务 定时清理日志文件
使用以下步骤设置定时任务每天凌晨执行清理日志文件的操作
# 打开定时任务配置文件
crontab -e
# 在文件末尾添加以下行
0 0 * * 0 /opt/java/auto-del-7-days-ago-log.sh定时重启服务
为了确保服务的稳定性。以下是设置每分钟监测的定时任务的步骤
# 打开定时任务配置文件
crontab -e# 在文件末尾添加以下行
* * * * * /opt/app/auth-start-common-server.sh开机启动定时任务
为了确保定时任务在系统启动时自动生效需要启用 crond 服务。使用以下命令启用 crond 服务
systemctl enable crond.service最后可以使用以下命令查看 crond 服务的状态确保定时任务已经生效
systemctl status crond.service通过以上步骤成功地设置了定时任务实现了日志文件的定期清理和服务的自动重启有助于维护系统的稳定性和性能。