SHELL脚本学习(七) 脚本控制(2)

一、调整谦让度

 在多任务操作系统中,内核负责为每个进程分配时间。 调度优先级 (也称为 谦让度 )是指内核为进程分配的CPU时间(相对于其他进程)。在linux系统中由shell启动的进程默认优先级是相同的。
 调度优先级是一个整数值,取值范围从-20(最高优先级)到19(最低优先级)。在默认情况下,bash shell以优先级0启动进程。

1.1 nice 命令

nice命令允许启动进程的时候设置其优先级。要想让任务以更低优先级运行,只需用nice命令的-n选项指定新的优先级。

nice -n 5 ./test.sh &
[1]+  Done                    nice -n 5 ./test.sh
[1] 741048
$ ps -p 741048 -o pid,ppid,ni,cmdPID    PPID  NI CMD741048  739541   5 /usr/bin/bash ./test.sh

ps命令证明谦让度(NI)已经改成了5。

nice -n -5 ./test.sh &
[1] 743194
nice: cannot set niceness: Permission denied
this is a test script
loop #1

如果想提高某个用户的优先级时会出现问题。nice命令阻止普通用户提升命令的优先级,但是即便提高优先级的操作没有成功,也不影响命令的执行。只用root用户和特权用户才能提高作业的优先级。

1.2 renice 命令

renice 命令可以修改系统中已运行的命令的优先级

renice -n 优先级 -p pid

$ ./test.sh >testout  &
[2] 748488$ ps -p 748488 -o pid,ppid,ni,cmdPID    PPID  NI CMD748488  739541   0 /usr/bin/bash ./test.sh$ renice -n 10 -p 748488
748488 (process ID) old priority 0, new priority 10$ ps -p 748488 -o pid,ppid,ni,cmdPID    PPID  NI CMD748488  739541  10 /usr/bin/bash ./test.sh

二、定时运行作业

linux系统提供了多个在预定时间执行脚本的方法:at命令、cron时间表以及anacron。

2.1 使用at命令调度作业

at命令允许指定何时执行脚本。该命令会将作业提交到队列,指定shell何时运行该作业。

2.1.1 命令格式

at [-f filename] time

默认情况下,at命令会将STDIN的输入放入队列。如果指定的时间已经过去,at命令会在第二天的同一时间执行指定的作业。

at命令能识别的多种时间格式:

时 间 格 式描 述
标准的小时和分钟比如:10:15
AM/PM指示符比如10:15PM
特定的事件名称比如 now、noon、midnight或者teatime(4:00PM)
标准日期MMDDYY、MM/DD/YY、DD.MM.YY
文本日期jul 4、dec 25等
时间增量NOW + 25minutes等
2.1.2 列出等待的任务

atq命令可以查看系统中有哪些作业在等待。

2.1.3 删除作业

可以用atrm删除作业,指出作业号即可。

atrm 作业号

2.2 调度需要定期运行的脚本

linux系统使用cron程序调度需要定期执行的作业。cron在后台运行,并会检查一个特殊的表(cron时间表),从中获知需要执行的作业。

2.2.1 cron时间表

minutepasthour hourofday dayofmonth month dayofweek command

cron时间表允许使用特定值、取值范围或者通配符指定各个字段。
比如:每天11:20执行date命令

20 10 * * * date
2.2.2 构建cron时间表

linux提供了crontab命令处理cron时间表。-l 选项列出已有的时间表

语法

crontab [-u user] file
或者
crontab [-u user] { -l | -e | -r }

查看当前用户的 crontab 文件

crontab -l

编辑当前用户的 crontab 文件

crontab -e

删除当前用户的 crontab 文件

crontab -r

$ cat <cronfile
39 11 * * * date > cronout$ crontab cronfile

$ crontab -l
39 11 * * * date > cronout#11:39之后查看cronout文件
$ cat < cronout
Thu 13 Jun 2024 11:39:01 AM CST
2.2.3 浏览cron目录

如果对于时间的精确性要求不高,则可以使用预配置的cron脚本目录。
预配置的基础目录有4个:hourly、daily、monthly和weekly

$ ls /etc/cron.*ly -l
/etc/cron.daily:
total 40
.../etc/cron.hourly:
total 0/etc/cron.monthly:
total 0/etc/cron.weekly:
total 8
...

如果需要每天执行一次,那么可以将脚本复制到daily目录,cron就会每天运行它。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/26378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开箱机特点与操作因素:深入剖析影响效率的关键因素

在现代化物流和生产流程中&#xff0c;开箱机作为一种自动化、高效率的设备&#xff0c;正逐渐成为企业提升工作效率、降低人工成本的得力助手。然而&#xff0c;要想充分发挥开箱机的性能优势&#xff0c;就必须深入了解其特点与操作因素&#xff0c;并准确把握影响效率的关键…

Navicat for MySQL 11软件下载附加详细安装教程

根据使用者情况表明Navicat Premium 能使你快速地在各种数据库系统间传输数据&#xff0c;或传输到一份指定 SQL 格式和编码的纯文本文件&#xff0c;计划不同数据库的批处理作业并在指定的时间运行&#xff0c;其他功能包括导入向导、导出向导、查询创建工具、报表创建工具、数…

贝尔编程是干什么的:深入探索其核心理念与应用领域

贝尔编程是干什么的&#xff1a;深入探索其核心理念与应用领域 贝尔编程&#xff0c;这一术语在科技领域里逐渐崭露头角&#xff0c;引起了广泛的关注。但究竟贝尔编程是干什么的呢&#xff1f;本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;深入剖析贝尔编程的…

安卓编程用什么软件:深入探索与全面解析

安卓编程用什么软件&#xff1a;深入探索与全面解析 在安卓编程的广阔天地中&#xff0c;选择合适的软件工具对于提升编程效率与体验至关重要。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;为您深入探索与全面解析安卓编程所需的软件工具&#xff0c;带您领略…

Idea | Idea提交.properties文件乱码问题

这里 Transparent natice-to-ascii conversion 自动转换ASCII码 千万别勾选

第 5 章:面向生产的 Spring Boot

在 4.1.2 节中&#xff0c;我们介绍了 Spring Boot 的四大核心组成部分&#xff0c;第 4 章主要介绍了其中的起步依赖与自动配置&#xff0c;本章将重点介绍 Spring Boot Actuator&#xff0c;包括如何通过 Actuator 提供的各种端点&#xff08;endpoint&#xff09;了解系统的…

优雅迷人的小程序 UI 风格

优雅迷人的小程序 UI 风格

每日一题——Python实现PAT甲级1116 Come on! Let‘s C(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码点评 时间复杂度分析 空间复杂度分析 总结 我要更强 优化思路 优化…

全球首个光量子计算机生产线落地!量子计算机要量产了

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨娴睿/慕一 排版丨沛贤 深度好文&#xff1a;1000字丨5分钟阅 摘要&#xff1a;欧洲量子计算服务提供商Quandela以其创新的光量子比特生产技术&#xff0c;致力于推动量子计算的工业规模化…

【react】react-redux 使用指南

React-Redux 使用指南如下: 一、引言 React-Redux 是为 React 框架设计的一个状态管理库,它基于 Redux,但提供了更加便捷的方式来与 React 组件进行交互。通过 React-Redux,你可以在整个应用程序中维护一个单一的数据源(即 Redux Store),并通过 action 和 reducer 来管…

三角剖分技术在AI绘画中的艺术与创新

引言&#xff1a; 随着人工智能技术的不断进步&#xff0c;AI绘画作为一种新兴的艺术创作方式逐渐进入人们的视野。它不仅改变了传统艺术创作的模式&#xff0c;还为艺术家和设计师提供了全新的工具。在AI绘画中&#xff0c;三角剖分技术扮演着至关重要的角色&#xff0c;它不仅…

ABeam News | ABeam德硕受邀参访建王设计,细化双方ESG合作可能点

0523 ABeam News 左起&#xff1a;ABeam大中华区董事长兼总经理中野洋辅、建王设计北京办公室总监田禾、建王设计北京办公室总经理王丽、ABeam中国ESG与可持续发展负责人杨丽楠、ABeam上海办公室王培培 建王 随着ESG&#xff08;环境、社会和治理&#xff09;理念近年来的持续…

Springboot的小型超市商品展销系统-计算机毕业设计源码01635

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

Lua解释器裁剪

本文目录 1、引言2、文件功能3、选择需要初始化的库4、结论 文章对应视频教程&#xff1a; 已更新。见下方 点击图片或链接访问我的B站主页~~~ Lua解释器裁剪&#xff0c;很简单~ 1、引言 在嵌入式中使用lua解释器&#xff0c;很多时候会面临资源紧张的情况。 同时&#xff0c…

以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的

本文基于 OpenJDK17 进行讨论 1. Reference 相关概念及其应用场景总览 Reference&#xff08;引用&#xff09;是 JVM 中非常核心且重要的一个概念&#xff0c;垃圾回收器判断一个对象存活与否都是围绕着这个 Reference 来的&#xff0c;JVM 将 Reference 又细分为几种具体的引…

记录汇川:计算机-ST

某小学校内&#xff0c;数学教学组&#xff0c;为了能给新进学生更好的体验到电子计算器高速的计算能力&#xff0c;打算打造一个计算实操台&#xff0c;能够兼容任意数字的加、减、乘、除的功能全自动计算器实操台项目由可编程逻辑控制器与人机界面组成。 1、拥有加、减、乘、…

Tkinter的完美伴侣:加强版GUI库揭秘(界面升级不止步:如何用一个库强化Tkinter)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒🚀 安装🔖 创建第一个应用💡 主要特性🔓 主题切换📢 示例项目⚓️ 相关链接 ⚓️📖 介绍 📖 Tkinter作为Python标准库中最常用的GUI工具包,其简单易用的特性深受开发者喜爱。然而,Tkinter在界面美…

ubuntu20.04 minio 安装为服务

一、下载 mkdir /usr/local/minio cd /usr/local/minio mkdir /usr/local/minio/data wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod x minio 二、安装为服务 vim /etc/systemd/system/minio.service 输入内容&#xff1a; [Unit] Descri…

共话大模型技术进展与挑战,CCF大模型论坛北京会议圆满落幕!

2024 年 6 月 6 日中国计算机学会大模型论坛&#xff08;CCF FoLM&#xff09;主题会议在北京顺利举办。本次会议主题为“大模型技术进展与挑战”&#xff0c;各位专家围绕大模型技术的前沿动态、发展趋势及技术挑战等议题展开深入探讨&#xff0c;为广大从业者、研究者提供了一…

2024.6.12总结

今天是排毕业照的日子&#xff0c;拍照的时候并没有太过兴奋。后来受到主管说明天就能签offer了&#xff0c;这才喜极而泣。 自从得知自己面试通过后&#xff0c;我是非常高兴&#xff0c;开始幻想着今后的生活。可是&#xff0c;后面在等offer的过程中&#xff0c;我是无比的…