- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
Hegle Jensens' wrote a great SnapBtr script它使用智能算法进行基于快照的备份,当可用空间变得稀缺时,该算法会选择要删除的旧备份。
不幸的是,BTRFS 文件系统有一个特点,即在执行任何删除命令后,它不会立即释放磁盘空间;相反,它只是安排删除每个节点。释放磁盘空间的实际过程发生在后台,只有在它完成后,我们才能知道有多少可用空间可用。
这就是为什么我想改进这个脚本,以便在删除一个备用子卷之后,它会等到没有硬盘驱动器事件才能获得实际的可用磁盘空间统计信息。
问题:知道周围有这么多 Python 库,你知道有什么会返回一些东西,我可以用它来获得硬盘驱动器事件饱和度的百分比吗?
如果有帮助,我已经制作了一个 Bash 脚本 wait-for-disk-idle.sh
,它依赖于 iostat
来获取磁盘事件信息。但我想为如此简单的事情调用外部 Bash 进程是非常低效且容易出错的(如果未安装 iostat
怎么办?):
#! /bin/bash
USAGE="Usage: `basename $0` [-t sample time] [-p disk IO percent threshold] disk-device"
time=4
percent=10
# Parse command line options.
while getopts ":t:" OPT; do
case "$OPT" in
t)
time=$OPTARG
;;
:)
# getopts issues an error message
echo "`basename $0` version 0.1"
echo $USAGE >&2
exit 1
;;
\?)
# getopts issues an error message
echo "`basename $0` version 0.1"
echo $USAGE >&2
exit 1
;;
esac
done
while getopts ":p:" OPT; do
case "$OPT" in
p)
percent=$OPTARG
;;
:)
;;
\?)
# getopts issues an error message
echo "`basename $0` version 0.1"
echo $USAGE >&2
exit 1
;;
esac
done
# Remove the switches we parsed above.
shift `expr $OPTIND - 1`
# We want at least one non-option argument.
# Remove this block if you don't need it.
if [ $# -eq 0 ]; then
# getopts issues an error message
echo "`basename $0` version 0.1"
echo $USAGE >&2
exit 1
fi
echo percent: $percent, time: $time, disk: $1
while [[ $(iostat -d -x $time 2 $1 |
sed -n 's/.*[^0-9]\([0-9][0-9]*\)[\.,][^,^\.]*$/\1/p' | tail -1) > $percent
]]; do
echo wait
done
最佳答案
这是我从脚本(前)维护者那里得到的答案:
I am no longer cleaning up using the SnapBtr.py script, however you may be able to wait for the delete to complete with a
btrfs filesystem sync
.
关于linux - python : How to wait until disk activity subsides?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21208905/
关于w3total缓存工作机制,我在互联网上搜索,但找不到有关这两个的任何正确信息。w3Total 缓存中的磁盘增强型和磁盘基本型有什么区别?为什么磁盘增强型优于磁盘基本型?使用磁盘增强和磁盘缓存选项
我在启动时一直使用这两种方法,对我来说,功能是相同的。到目前为止,我创建的实例仅用于计算。我想知道 GCE 磁盘镜像和快照在技术方面有何不同,以及在哪种情况下使用其中一种更好。 最佳答案 快照反射(r
我正忙于迁移到 Azure 虚拟机。 我的 SQL Server 数据库 MDF 应该驻留在操作系统磁盘上还是数据磁盘上(据我所知,这是一个页 blob - 也称为 Azure 磁盘驱动器)? 我本以
背景 我一直在使用 Win32_DiskDrive 来查找闪存(USB 笔、SD 卡等),但在其他计算机上进行一些测试后,我发现它们并不总是被发现。因此,我使用 Win32_LogicalDisk,因
我知道 stackoverflow 中也有类似的问题: WIX:default directory in WixUI_InstallDir, WIX installer root directory
如何使用 Golang 包获取 Dispart 详细信息(磁盘名称(例如:磁盘 0)空闲和磁盘使用情况) 最佳答案 您可以使用此包 github.com/shirou/gopsutil 获取 disk
我希望能够确定CD驱动器中的音乐专辑CD。例如,如果某人声称驱动器中的CD是Eminem-Eminem Show,那么我希望能够验证CD确实是The Eminem Show。 有任何想法吗?我已经申请
我需要对文件执行随机更新。让我需要更新偏移量 k1、k2、....、kn 处的文件。从性能的角度来看,如果我按任何顺序写入是否重要,或者如果我按偏移量的递增顺序写入,性能会提高吗?更具体地说,我将在
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 10年前关闭。 Improve this
我准备发布一个只对普通硬盘有效的工具,而不是 SSD(固态硬盘)。事实上,它不应该与 SSD 一起使用,因为它会导致大量读/写而没有实际效果。 任何人都知道检测给定驱动器是否为固态的方法? 最佳答案
NSWorkspaceDidMountNotification 可以很好地获取刚刚安装的磁盘的信息。但是如何在我的应用程序启动之前获取已经安装的磁盘的信息? 命令行:“diskutil list”和“
NSWorkspaceDidMountNotification 可以很好地获取刚刚安装的磁盘的信息。但是如何在我的应用程序启动之前获取已经安装的磁盘的信息? 命令行:“diskutil list”和“
我想知道为什么我的模拟器不断增加它在磁盘上的大小。否则它的运行速度比第一次慢。有什么解决办法吗?我不希望我的模拟器也保存它的状态。这个怎么做? 最佳答案 我发现从设置>存储>释放空间从模拟器手机中删除
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我想知道,是否有某种类型的光盘 ID 可以用来在我的数据库中搜索以查看该光盘是否已被扫描?所有光盘都是由我创建的,通常在 Windows 上刻录。 -编辑-我可以比较写入时间和卷标以查看光盘是否已被扫
fmdb 文档说,如果您将文件系统路径传递给databaseWithPath:它将为您创建一个文件: 文件系统路径。该文件不必存在于磁盘上。如果它不存在,则会为您创建。 我正在使用以下代码获取我的文件
在 Azure 中创建 Windows Server 虚拟机后,我注意到操作系统磁盘(C: 驱动器)大小只有 30GB。 我的印象是所有新虚拟机都有 127GB 操作系统磁盘大小。 (Expand t
我在Google dataproc中默认设置(4个vCPU,15GB Ram)创建了一个群集。 在完成几次养 pig 工作后,集群中有2-3个不健康的节点。 因此,我升级了工作虚拟机的vCPU(4至8
有人可以解释一下在以下上下文中刷新到磁盘的含义吗?如果我将数据写入文件系统上的日志,这是否意味着我将其放在磁盘上?在什么时候您会/应该将文件刷新到磁盘? This suggests a design
下面的输出属于 FAT32 磁盘文件。我想用 C 程序显示所有文件以及每个文件相应分配的扇区。 按照指南我什至无法找到根目录。 (示例1 - 在http://www.tavi.co.uk/phobos
我是一名优秀的程序员,十分优秀!