首页 > 系统相关 >linux 配置定时任务

linux 配置定时任务

时间:2023-12-29 15:59:51浏览次数:48  
标签:bin name 配置 namespace echo usr linux 定时 pod

注意:定时任务执行默认路径,我们配置的命令如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

标签:bin,name,配置,namespace,echo,usr,linux,定时,pod
From: https://www.cnblogs.com/yuhaohao/p/17935036.html

相关文章

  • Vscode 配置ssh实现用vscode直接看远程服务器代码
    1、下载vscode插件下载RemoteDevelopment插件2、配置ssh文件安装完成后,在左边有对应插件,设置config的配置文件 3、ctrl+shift+p:选择Remote-SSH,确认后选择刚才配置的文件4、此时会打开一个新的窗口,按照提示一步一步执行,一般输入密码,校验成功后会提示连接到远程,选择打开......
  • APISIX 3.0安装及配置使用【转】
    最近一直在研究微服务相关内容,通过对比各大API网关,发现新起之秀APISIX无论从开源程度上来讲还是功能上,都拥有很大的优势。经历了几天折磨一样的学习,目前在本地环境中配置成功了一套,以供自己留存吧,实在是网上的很多文章要么太老了,要么就是乱写一通。 APISIX官方网址:https://ap......
  • Linux firewalld 的用法
    大乌龙事件之防火墙作祟:在我的初始化环境中selinux、iptables、firewalld是关闭的,莫名的firewalld是没有关闭的这是我在安装完docker后一段时间后部署jenkins才发现的,当时在排错折腾了一下午,从防火墙,负载均衡,jenkins本身服务,docker没想到firewalld开启了,我说服务器内......
  • 29.capability 配置参数解析与 分布式运行
    目录capability概述capability配置SeleniumGrid简介分布式运行capability概述Capabilities是WebDriver支持的标准命令之外的扩展命令(配置信息)配置web驱动的属性,如浏览器名称、浏览器平台等。结合SeleniumGrid完成分布式、兼容性等测试官网地址:https://ww......
  • Taurus .Net Core 微服务开源框架:Admin 插件【4-8】 - 配置管理-Mvc【Plugin-Limit 接
    前言:继上篇:Taurus.NetCore微服务开源框架:Admin插件【4-7】-配置管理-Mvc【Plugin-Metric接口调用次数统计】本篇继续介绍下一个内容:1、系统配置节点:Mvc- Plugin-Limit接口访问限制、IP限制、Ack限制:配置界面如下:限制目前提供以下三个类别的限制:1、Rate访......
  • Linux Debian12安装和使用ImageMagick图像处理工具 常见图片png、jpg格式转webp格式
    一、ImageMagick简介ImageMagick是一套功能强大、稳定而且免费的工具集和开发包。可以用来读、写和图像格式转换,可以处理超过100种图像格式,包括流行的TIFF,JPEG,GIF,PNG,PDF以及PhotoCD等格式。对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Rub......
  • linux常用命令集合
    title:linux常用命令集合date:2022-08-2317:43:05permalink:/pages/f321a8/categories:-Linuxtags:-基础linux常用命令集合history查看历史命令通过exportHISTTIMEFORMAT='%F%T'命令,可以临时显示命令执行的时间通过!${id}可以快速执行上次的命令......
  • Rocky Linux 9 x86_64 OVF (sysin) - VMware 虚拟机模板
    RockyLinux9x86_64OVF(sysin)-VMware虚拟机模板以社区方式驱动的企业Linux作者主页:sysin.orgRockyLinux9.3(5.14.0-362.8.1.el9_3.x86_64)RockyLinux9.0(5.14.0-70.13.1.el9_0.x86_64)以社区方式驱动的企业LinuxRockyLinux是一个开源的企业级操作系统,旨在与Red......
  • Rocky Linux 8.9 发布 - CentOS 的权威替代
    RockyLinux8.9发布-CentOS的权威替代RockyLinux由CentOS项目的创始人GregoryKurtzer领导作者主页:sysin.org以社区方式驱动的企业LinuxRockyLinux是一个开源的企业级操作系统,旨在与RedHatEnterpriseLinux®100%1:1兼容。它正处于社区的密集开发中。以社区驱......
  • Oracle Linux 8.9 发布 - Oracle 提供支持 RHEL 兼容发行版
    OracleLinux8.9发布-Oracle提供支持RHEL兼容发行版OracleLinuxwithUnbreakableEnterpriseKernel(UEK)&RedHatcompatiblekernel(RHCK)作者主页:sysin.orgOracleLinux是一个开放、全面的操作环境,提供虚拟化、管理、云原生计算工具和操作系统,通过一个统一的支持......