автоматическое удаление развертывания штурвала

Вы никогда не сможете сопоставить эти числа, поскольку есть открытые, но удаленные файлы, которые используются inodes, но которые невидимы для пользователей, которые просматривают файловую систему.

Есть также скрытые inodes (например, используемые определениями ACL и расширенными файлами атрибутов), которые нельзя увидеть с помощью команды find .

С другой стороны, вам нужно предотвратить многократный подсчет жестко связанных времен. Этого можно добиться с помощью:

find / u -xdev -ls | sort -n -u +0 | wc -l

, но учтите, что обычно это учитывает слишком мало файлов (см. выше).

0
14.05.2018, 16:09
1 ответ

Si está en un sistema con fecha GNU (como un sistema Linux ), podría usar awk para analizar la salida de helm ls, luego use la fecha GNU para calcular los segundos -desde -la época -y determinar si el despliegue correspondiente es lo suficientemente antiguo:

helm ls | awk -v now=$(date +%s) -f delete-old-deployments.awk

Donde los contenidos de delete-old-deployments.awkson ​​:

BEGIN {
  # age cutoff, in seconds
  cutoff=4 * 60 * 60
}

NR > 1 {
        split($0, elements, /   */)
        "date -d '" elements[3] "' +%s" | getline elesecs
        if ((now - elesecs) > cutoff && elements[4] == "DEPLOYED") {
            system("helm delete '"elements[1]"'")

        }
}

Basado en lo que puedo deducir del código fuente de helm ls , la salida es una tabla separada por espacios en blanco -de varias cadenas. Como tal, le pedí a awk que divida cada línea (después de omitir el encabezado )basado en 2 o más espacios (hay tres espacios en el tercer parámetro para la función dividir (); dos, seguido de cero -o -más espacios ).

El tercer campo después de la división es la cadena de fecha, que pasamos a la fecha de GNU, pidiéndole que la convierta en segundos -desde -la época -. Si la diferencia entre "ahora" y "entonces" es mayor que el corte, llamamos al comando helm deleteen el nombre correspondiente.

0
28.01.2020, 04:22

Теги

Похожие вопросы