运行 下一个作业仅在用户定义的条件为真时才使用 GNU Parallel
Run next job using GNU Parallel only if user defined condition is true
我正在使用 GNU Parallel 运行创建多个程序实例,每个实例都需要一些 space 辅助内存。碰巧的是,在我当前的设置中,所有实例都以错误退出,因为设备上没有 space。
如何仅在设备使用率低于 90% 时将 GNU Parallel 设置为 运行 下一个作业?我可以使用 df
命令获取设备使用情况:df --output=pcent "$PWD" | sed '1d;s/[^0-9]//g'
您可以使用这样的函数:
#!/bin/bash
# define a function which "parallel" will call
doit() {
# wait forever for sufficient resources
while :; do
pcnt=$(df --output ...)
[ $pcnt -lt 90 ] && break
sleep 5
done
# do job now as resources are available
}
# export function to subshells started by "parallel"
export -f doit
# start "parallel" - probably one of 3 methods:
# parallel -a jobs.txt doit
# parallel doit ::: jobs
# generate_jobs | parallel doit
我正在使用 GNU Parallel 运行创建多个程序实例,每个实例都需要一些 space 辅助内存。碰巧的是,在我当前的设置中,所有实例都以错误退出,因为设备上没有 space。
如何仅在设备使用率低于 90% 时将 GNU Parallel 设置为 运行 下一个作业?我可以使用 df
命令获取设备使用情况:df --output=pcent "$PWD" | sed '1d;s/[^0-9]//g'
您可以使用这样的函数:
#!/bin/bash
# define a function which "parallel" will call
doit() {
# wait forever for sufficient resources
while :; do
pcnt=$(df --output ...)
[ $pcnt -lt 90 ] && break
sleep 5
done
# do job now as resources are available
}
# export function to subshells started by "parallel"
export -f doit
# start "parallel" - probably one of 3 methods:
# parallel -a jobs.txt doit
# parallel doit ::: jobs
# generate_jobs | parallel doit