linux 配置定时任务
注意:定时任务执行默认路径,我们配置的命令如kubectl要配置绝对路径/usr/local/bin/kubectl,或者在脚本中全局定义PATH
配置说明
linux 配置定时任务的方式比较多,可以通过以下几种方式进行配置:
- 编辑/etc/crontab文件,配置相关的定时任务执行
[root@centos7 ~]# cat /etc/crontab
SHELL="/bin/bash"
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
MAILTO=""
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# the crontab jobs for k8s.
* * * * * root kube-crontab keep_master_alive
- 通过执行crontab -e,配置相关的定时任务执行
[root@centos7 ~]# crontab -e
# Puppet Name: hwclock
*/30 * * * * /sbin/hwclock -w
- 通过在/etc/cron.d增加对应的定时任务
[root@centos7 ~]# cat /etc/cron.d/error-pod-clean
# run cronjob to clean error pod
* * * * * root bash /opt/tools/clean-error-pod.sh >> /var/log/k8s-err-pod.log
[root@SH-IDC1-10-198-34-87 ~]# cat /opt/spe_tools/clean-error-pod.sh
#!/bin/bash
# 清理异常和已经完成的任务
set -e
/usr/local/bin/kubectl get pod -A --field-selector='status.phase==Failed' --output=custom-columns=NAME:.metadata.name,NAMESPACE:.metadata.namespace,STATUS:.status.phase,AGE:'.metadata.creationTimestamp'| awk '{print $1" "$2}' |while read line
do
namespace=$(echo $line|awk '{print $2}')
pod_name=$(echo $line|awk '{print $1}')
pod_info=$(/usr/local/bin/kubectl get pod -n $namespace $pod_name --no-headers)
pod_status=$(echo $pod_info |awk '{print $3}')
pod_age=$(echo $pod_info |awk '{print $5}')
echo "开始删除:$namespace/$pod_name 状态为: $pod_status 持续时间为: $pod_age 的POD"
/usr/local/bin/kubectl delete pod $pod_name -n $namespace --force --grace-period=0
echo "删除完成: $namespace/$pod_name"
done
这里如果配置绝对路径很麻烦,我们也可以在脚本中定义执行的命令PATH路径:
#!/bin/bash
# 清理异常和已经完成的任务
set -e
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
kubectl get pod -A --field-selector='status.phase==Failed' --output=custom-columns=NAME:.metadata.name,NAMESPACE:.metadata.namespace,STATUS:.status.phase,AGE:'.metadata.creationTimestamp'| awk '{print $1" "$2}' |while read line
do
namespace=$(echo $line|awk '{print $2}')
pod_name=$(echo $line|awk '{print $1}')
pod_info=$(kubectl get pod -n $namespace $pod_name --no-headers)
pod_status=$(echo $pod_info |awk '{print $3}')
pod_age=$(echo $pod_info |awk '{print $5}')
echo "开始删除:$namespace/$pod_name 状态为: $pod_status 持续时间为: $pod_age 的POD"
kubectl delete pod $pod_name -n $namespace --force --grace-period=0
echo "删除完成: $namespace/$pod_name"
done
linux 配置定时任务的更多相关文章
- linux配置定时任务cron/定时服务与自启动
实现linux定时任务有:cron.anacron.at,使用最多的是cron任务 名词解释 cron--服务名:crond--linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 ...
- LINUX 配置定时任务,每天凌晨1点定时备份数据库
一.安装定时任务如果本地没有安装包,在能够连网的情况下可以在线安装 yum install vixie-cronyum install crontabs 查看crond服务是否运行: pgrep cr ...
- 第12章 Linux配置定时任务详解
12.1 配置定时任务 首先需弄清的概念: (1).crond是一个daemon类程序,路径为/usr/sbin/crond.默认会以后台方式启动,service或systemd方式启动crond默认 ...
- 记录一下~~~Linux配置定时任务备份数据库dmp文件
1.创建备份目录: mkdir -p /dcits/sx_xmz/sx_data_bak chown -R oracle18c:oinstall /dcits/sx_xmz/sx_data_bak 2 ...
- Linux配置定时,使用 crontab -e 与 直接编辑 /etc/crontab 的区别
转自:http://blog.csdn.net/catoop/article/details/41821395 版权声明:本文为博主原创文章,未经博主允许不得转载. Linux配置定时任务,大家都知道 ...
- 【Python】Linux crontab定时任务配置方法(详解)
CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在 ...
- Linux crond定时任务
第1章 Crond是什么? Crond是linux系统用来定期执行命令或指定程序任务的一种服务或软件.一般情况下,我们安装完Centos5/6linux操作系统之后,默认便会启动Crond任务调度服务 ...
- linux下定时任务
一.linux定时任务软件种类 .at : 适合执行一次的任务.突发性的任务.需要启动 atd 服务才能执行任务. .crontab: 周期性的执行任务工作:启动crond 服务后可以执行任务.最常用 ...
- Linux之定时任务补充
定时任务两实例 例1: 每分钟打印一次自己的名字拼音全拼到“/server/log/自己的名字命名的文件”中. [root@chengliang log]# mkdir -p /server/log/ ...
- Linux之定时任务Crond使用
Linux之定时任务Crond使用 一.用法 crond服务是linux系统自带的服务,是不需要手动安装的: crond服务是一种守护进程: Linux中的用户使用contab命令来配置corn任务: ...
随机推荐
- k8s 手动更新 seldon core ca证书
前言 seldon core 报错:x509: certificate has expired or is not yet valid: current time 这是因为 seldon core 默 ...
- mongodb关机重启
正确关闭 mongodb 查看 mongodb 进程 ps -ef | grep mongodb # 或者 ps -aux | grep mongodb 杀掉 mongodb 进程(不推荐) kill ...
- 漫画赏析:Linux 内核到底长啥样
今天,我来为大家解读一幅来自 TurnOff.us 的漫画 "InSide The Linux Kernel" . TurnOff.us 是一个极客漫画网站,作者Daniel St ...
- 『Plotly实战指南』--折线图绘制进阶篇
上一篇介绍了Plotly绘制折线图的基础知识和数据预处理的技巧, 本文将重点探讨如何利用Plotly实现多线折线图的布局设计以及动态折线图的实现, 让我们一起掌握进阶的折线图绘制技巧. 1. 多折线图 ...
- Netty源码—3.Reactor线程模型二
大纲 5.NioEventLoop的执行总体框架 6.Reactor线程执行一次事件轮询 7.Reactor线程处理产生IO事件的Channel 8.Reactor线程处理任务队列之添加任务 9.Re ...
- 面试题-Netty框架
前言 Netty框架部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮 ...
- go 语言中的占位符详解
在 Go 语言的 fmt 包中,占位符用于格式化输出,允许在输出时插入变量的值.以下是一些常用的占位符及其用法: 通用占位符: %v:按照值的默认格式输出. %+v:输出结构体时,会添加字段名. %# ...
- RAG, GraphRAG, LightRAG, and KAG
KAG: A Better Alternative to RAG for Domain-Specific Knowledge Applications https://medium.com/@ahme ...
- 如何处理 MySQL 的主从同步延迟?
如何处理 MySQL 的主从同步延迟? MySQL 的主从同步延迟通常是由主库与从库之间的网络延迟.从库的处理能力.主库的写操作量等因素导致的.长时间的同步延迟可能会影响系统的稳定性和数据一致性.以下 ...
- zabbix 之安装采坑记
很久没有安装过zabbix,理论上应该是很简单,但是还是遇到好几个小问题,导致浪费了两个小时时间了要,特此记录一下 如果没有研发源码的能力,建议选择LTS版本 zabbix 4.0 官方安装文档: h ...