小编Ghr*_*rew的帖子

如果另一个 APT 实例正在运行,如何让我的脚本等待?

我的脚本遇到了一些问题。

简而言之,我正在实习,我的老板给了我一个任务,让我为 Nagios 做一个 Probe。
这个探测器的目的是检查我们所有的主机,如果一个包从 repo 中丢失,如果是,那么我们在 Nagios 上有一个带有丢失包列表的警告。
如果我们想保留一个不在任何存储库中但我们不使用它的包,则此探测器可以包含一个白名单。

这是我的脚本:

#!/bin/bash

STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2

which apt-show-versions >/dev/null
STATE=$?

declare -a WHITELIST=( host1:elasticsearch:all host2:elasticsearch:all)
PACKAGES=()
NOT_AVAILABLE=()
HOST=$(hostname)


#while [ -f /var/lib/apt/lists/lock ]
#do
#  sleep 2
#done


if [ "$STATE" = 0 ] #Verifie la condition apt-show-version = installer
then

    packets=$(apt-show-versions | grep 'No available version in archive' | cut -d" " -f1)

    for packet in $packets;do
        PACKAGES+=("${HOST}:$packet")
    done

    for package in "${PACKAGES[@]}"; do
        if [ "${WHITELIST[*]}" != "${package}" …
Run Code Online (Sandbox Code Playgroud)

package-management apt bash scripts nagios3

4
推荐指数
1
解决办法
1374
查看次数

标签 统计

apt ×1

bash ×1

nagios3 ×1

package-management ×1

scripts ×1