Bash скрипт на удаление большого количества пользователей не запущен - PullRequest
1 голос
/ 09 июля 2020

мой bash скрипт не запускается и не выводит ничего после echo "Running gke old user cleanup". Нет сообщения об ошибке, оно просто не запускается. Есть предложения?

#!/bin/bash

set -o pipefail
set -o nounset

date
echo "Running old user cleanup"

for user in $(awk -F':' '$1 ~ /^kub-[a-z0-9]{20}$/ { print $1 }' /etc/passwd); do
  echo "Cleaning up '${user}'"
  userdel -r "${user}"
  rc=$?
  if [[ $rc != 0 ]]; then
    echo "Failed to cleanup '${user}': exit code: ${rc}"
  else
    echo "Successfully cleaned up '${user}'"
  fi
done

1 Ответ

2 голосов
/ 09 июля 2020

Может быть, упростить l oop.

while read user
do if userdel -r "${user}"
   then echo "Successfully cleaned up '${user}'"
   else echo "Failed to cleanup '${user}': exit code: '$?'"
   fi
done < <( awk -F':' '$1 ~ /^gke-[a-z0-9]{20}$/ { print $1 }' /etc/passwd )

Должно быть, по крайней мере, легче отлаживать. Добавьте set -x, как предлагается, чтобы увидеть, что оценивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...