Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux df-h返回98%满时如何执行命令_Linux_Shell_Sh - Fatal编程技术网

Linux df-h返回98%满时如何执行命令

Linux df-h返回98%满时如何执行命令,linux,shell,sh,Linux,Shell,Sh,df-h返回98%满时如何执行命令 我有一张磁盘在旁边 /dev/sdb1 917G 816G 55G 94% /disk1 如果它的回报率达到98%,我想做以下几点 find . -size +80M -delete 如何操作,我将使用cron运行shell脚本 * * * * * sh /root/checkspace.sh 执行df-h,将命令输出传输到grepmatching”/dev/sdb1”,并通过awk处理该行,检查第5列的数字部分(awk术

df-h返回98%满时如何执行命令

我有一张磁盘在旁边

/dev/sdb1             917G  816G   55G  94% /disk1
如果它的回报率达到98%,我想做以下几点

find . -size +80M -delete
如何操作,我将使用cron运行shell脚本

* * * * * sh /root/checkspace.sh

执行
df-h
,将命令输出传输到
grep
matching”/dev/sdb1”,并通过
awk
处理该行,检查第5列的数字部分(
awk
术语中的
$5
)是否大于或等于98。不要忘记检查是否超过98。

您需要安排脚本,检查磁盘利用率,如果利用率约为98%,则删除文件

要安排脚本,可以引用该条目

有一个使用find命令删除Unix和Linux站点上文件的示例:

对于您的测试,您需要和。注意,您将对with sh使用“backticks”,但对于bash,$(…)表单已取代backticks用于命令替换

要获得磁盘利用率,您可以使用:

    df | grep -F "/dev/sdb1" | awk '{print $5}'
--这是一个功能性的grep,用于获取特定磁盘,awk用于拉出第5列,tr带有delete标志以除去百分号

您的测试可能如下所示:

 if [ `df | grep -F "/dev/vda1" | awk '{print $5}' | tr -d %` -ge 98 ];
   then echo "Insert your specific cleanup command here.";
 fi

当然,有很多方法可以解决这个问题,但希望能有所帮助

为什么现在
df/dev/sdb1
?为什么不
df--output=pcent/dev/sda1
?为什么不
df--output=pcent/dev/sda1 | tail-n1
?;)这些都是很好的注释,但是使用grep还允许您排除标题行,以便您可以更轻松地获取整数进行测试。如果您只是要盲目删除大于80M的文件,为什么要等到磁盘已满?只要按计划运行该脚本,并称之为良好的。当磁盘容量达到98%时,文件的重要性会降低吗?还是总是这样?我是唯一一个担心删除重要文件的人吗?公平地说,找出问题文件并具体处理它们会更好、更安全——日志旋转等。不需要
grep
。。。只要
if($(df-k | awk'$1==“/dev/sdb1”{print gensub(“%”,“,”,1,$5)}')>=98));然后……