根据条件关闭软件

使用下载工具时,经常出现磁盘空间已满,无法下载的情况。

使用shell写一个监控,每2分钟执行一次。判断当前磁盘的空间,低于2G时,关闭下载软件。


获取空间大小


➜  ~ df -h                                                
Filesystem       Size   Used  Avail Capacity iused      ifree %iused  Mounted on
/dev/disk1s5s1  233Gi   14Gi  9.0Gi    62%  553757 2447547563    0%   /
devfs           196Ki  196Ki    0Bi   100%     678          0  100%   /dev
/dev/disk1s4    233Gi  1.0Gi  9.0Gi    10%       1 2448101319    0%   /System/Volumes/VM
/dev/disk1s2    233Gi  300Mi  9.0Gi     4%    1209 2448100111    0%   /System/Volumes/Preboot
/dev/disk1s6    233Gi  920Ki  9.0Gi     1%      17 2448101303    0%   /System/Volumes/Update
/dev/disk1s1    233Gi  208Gi  9.0Gi    96% 1517128 2446584192    0%   /System/Volumes/Data
map auto_home     0Bi    0Bi    0Bi   100%       0          0  100%   /System/Volumes/Data/home

可通过

df -h | grep "/$" | awk '{print $4}' | sed 's/Gi/ /g'

获取当前磁盘的剩余空间

alt




获取下载软件的pid并关闭


通过

ps -ef | grep /Applications/Thunder.app/Contents/MacOS/Thunder | grep -v grep | cut -c 7-15

可得到pid。


使用

ps -ef | grep /Applications/Thunder.app/Contents/MacOS/Thunder | grep -v grep | cut -c 7-15 | xargs kill -9

关闭该进程。

命令详解 参见 批量kill掉包含某个关键字的进程




写成shell脚本,并配置定时任务


shell脚本

#!/bin/bashspareDisk=$(df -h | grep "/$" | awk '{print $4}' | sed 's/Gi/ /g')echo '当前剩余空间'$spareDisk'GB'#echo "scale=0; ($spareDisk - 2)" | bc safeDisk=$(echo "scale=0; ($spareDisk - 2)/1" | bc)echo '当前空间离2GB还剩'$safeDisk'GB'if [ $safeDisk -gt 0 ]
thenecho '安全'
elseps -ef | grep /Applications/Thunder.app/Contents/MacOS/Thunder |  grep -v grep | cut -c 7-15 | xargs kill -9echo '空间不足,已关闭软件'
fi

配置crontab

crontab -e

*/3 * * * * /Users/xxxxx/kill.sh > space_check.log

每3分钟检查一次~


参考:

Linux bc 命令

bc 命令是任意精度计算器语言,通常在linux下当计算器用。

scale=2 设小数位,2 代表保留两位:

echo 'scale=2; (2.777 - 1.4744)/1' | bc
1.30

(/1是为使精确到小数点后2位生效)

本文由 mdnice 多平台发布

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

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

相关文章

2023百度之星 题目详解 公园+糖果促销

2023百度之星题目详解 文章目录 2023百度之星题目详解前言公园问题题目详解 夏日漫步问题问题详情题目详解 前言 这里为大家带来最新的2023百度之星的题目详解,后续还会继续更新,喜欢的小伙伴可以点个关注啦! 公园问题 今天是六一节&#…

OceanBase杨传辉传递亚运火炬:国产数据库为“智能亚运”提供稳稳支持

9 月 14 日,亚运火炬传递到了浙江台州,OceanBase 的 CTO 杨传辉作为火炬手交接了第 89 棒火炬。 2010 年,杨传辉作为创始成员之一参与自研原生分布式数据库 OceanBase。十年磨一剑,国产数据库 OceanBase 交出了一张优秀的成绩单&a…

若依cloud -【 100 ~ 】

100 分布式日志介绍 | RuoYi 分布式日志就相当于把日志存储在不同的设备上面。比如若依项目中有ruoyi-modules-file、ruoyi-modules-gen、ruoyi-modules-job、ruoyi-modules-system四个应用,每个应用都部署在单独的一台机器里边,应用对应的日志的也单独存…

基于若依ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(三)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 1、上一节说到RedisReceiver ,这里有调用了NbcioRedisListener自定义业务监听,如下…

「UG/NX」Block UI 指定方位SpecifyOrientation

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

Django系列:Django应用(app)的创建与配置

Django系列 Django应用(app)的创建与配置 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article…

Integer使用不当

Integer包装类 Integer 是一个封装类型。它是对应一个 int 类型的包装。 在 Java 里面之所以要提供 Integer 这种基本类型的封装类,是因为 Java 是一个面向对象的语言, 而基本类型不具备对象的特征,所以在基本类型上做了一层对象的包装并且提…

数据结构--排序(1)

文章目录 排序概念直接插入排序希尔排序冒泡排序堆排序选择排序验证不同排序的运行时间 排序概念 排序指的是通过某一特征关键字(如信息量大小,首字母等)来对一连串的数据进行重新排列的操作,实现递增或者递减的数据排序。 稳定…

【C++】静态成员函数 ( 静态成员函数概念 | 静态成员函数声明 | 静态成员函数访问 | 静态成员函数只能访问静态成员 )

文章目录 一、静态成员函数简介1、静态成员函数概念2、静态成员函数声明3、静态成员函数访问4、静态成员函数只能访问静态成员 二、代码示例 - 静态成员函数 一、静态成员函数简介 1、静态成员函数概念 静态成员函数归属 : 在 C 类中 , 静态成员函数 是一种 特殊的函数 , 该函数…

MFC串口通信控件MSCOMM32.OCX的安装注册

MSCOMM32.OCX是一个与Microsoft Corporation开发的MSComm控件相关联的文件。MSComm控件是软件应用程序用来与调制解调器、条形码读取器和其他串行设备等设备建立串行通信的通信控件。 下载地址1 https://download.csdn.net/download/m0_60352504/88345092 下载地址2 https://ww…

kafka的 ack 应答机制

目录 一 ack 应答机制 二 ISR 集合 一 ack 应答机制 kafka 为用户提供了三种应答级别: all,leader,0 acks :0 这一操作提供了一个最低的延迟,partition的leader接收到消息还没有写入磁盘就已经返回ack&#x…

虚拟机部署linux网络连接配置

1、虚拟机安装linux后,配置网络访问 虚拟机网络设置为NAT模式 linux网络配置好IP,主要是以下网络配置 2、linux没有ifconfig命令,ifconfig命令是在net-tools.x86_64包里 yum install net-tools.x86_64安装

Linus Torvalds接受来自微软的Linux Hyper-V升级

导读微软最近推送了一些变更,旨在改进即将发布的 Linux 内核 6.6 版本对 Hyper-V 的支持。这些改进包括在 Hyper-V 上支持 AMD SEV-SNP guest 和 Intel TDX guest。除了这两项,还有其他一些升级,如改进了 VMBus 驱动程序中的 ACPI&#xff08…

【Vue3 源码解析】ref 全家桶

// 函数重载&#xff0c;以便根据传入的不同参数类型执行不同的处理 export function ref<T extends Ref>(value: T): T export function ref<T>(value: T): Ref<UnwrapRef<T>> export function ref<T any>(): Ref<T | undefined> export…

操作系统:体系结构

1.内核的划分 1.术语解释 时钟管理&#xff1a;利用时钟断实现计时功能。原语是一种特殊的程序,具有原子性。也就是说,这段程序的运行必须一气呵成&#xff0c;不可被“中断”Ubuntu、Centos的开发团队,其主要工作是实现非内核功能&#xff0c;而内核都是用了Linux内核。 内核…

hive数据初始化

mysql版本&#xff1a;3.1.3 hive版本&#xff1a; 8.0.31 hive连接配置 <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node88:3306/hive?createDatabaseIfNotExisttrue</value> </pr…

算法 滑动窗口最大值-(双指针+队列)

牛客网: BM45 题目: 数组num, 窗口大小size, 所有窗口内的最大值 思路: 用队列作为窗口&#xff0c;窗口内存储数组坐标&#xff0c;left window[0], right从数组0开始遍历完数组&#xff0c;每次新增元素时&#xff0c;(1)先对窗口大小进行收缩到size大小范围&#xff0c;即…

单元测试 —— JUnit 5 参数化测试

JUnit 5参数化测试 目录 设置我们的第一个参数化测试参数来源 ValueSourceNullSource & EmptySourceMethodSourceCsvSourceCsvFileSourceEnumSourceArgumentsSource参数转换参数聚合奖励总结 如果您正在阅读这篇文章&#xff0c;说明您已经熟悉了JUnit。让我为您概括一下…

Java中swing的5种布局方式浅析

在一个传统的java项目中&#xff0c;遇到一个需要调整布局的需求&#xff0c;下面将学习网上大佬的文章&#xff0c;并将过程记录下来。 1、Java swing5种布局方式 1、 边界布局&#xff08;BorderLayout&#xff09;2、流式布局&#xff08;FlowLayout&#xff09;3、网格布局…

王道考研操作系统

王道考研操作系统 计算机系统概述操作系统的概念操作系统的特征操作系统的发展历程操作系统内核中断和异常![在这里插入图片描述](https://img-blog.csdnimg.cn/162452b4c60144e0bd500e180127c447.png)系统调用操作系统结构虚拟机错题 进程与线程进程控制进程通信线程和多线程模…