Как генерировать списки владения папки для каждого пользователя?

Количество задач, у Вас есть работа Вашей машины, абсолютно не связано для торговли на сайт Red Hat. Red Hat является поставщиком программного обеспечения, не поставщиком услуг. Ваши программы выполняются на Вашей машине; единственная программа, которая соединяется с Red Hat, является диспетчером пакетов, когда это загружает пакеты для установки.

Главный вывод показывает, что центральные процессоры Вашей машины полностью заняты. Вы выполняете обоих интенсивных ЦП ( 50.0%us) и IO-intensive ( 50.0%sy) задачи? Ниже заголовков Вы будете видеть, какие процессы работают. Если Вы не знаете то, от чего эти процессы делают, отправляют полную страницу вывода top и мы поможем. Если Вы не заботитесь о перезагрузке, перезагрузке и видите то, что происходит затем.

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

2
14.08.2012, 01:04
2 ответа
getent passwd | cut -d: -f1 | while read USER ; do
  echo $USER #use this to show some kind of progress otherwise delete this string
  find / -user $USER > ${USER}.txt 2>/dev/null
done

PS для получения дополнительной информации смотрит на циклы оболочки.

Однако это - довольно плохая идея: необходимо будет работать find в целой файловой системе так же много раз как многие пользователи Вы имеете.

Мы будем намного более умными и сделаем это в другом отношении: мы будем работать find только однажды и разделение это производится к файлы как это:

find / -printf "%u %p\n" | awk '{print $2 > $1".txt"}'
3
27.01.2020, 22:01
  • 1
    Вам будет нужно >> если Вы хотите больше, чем последний файл для каждого пользователя. –  Kevin 13.08.2012, 15:20
  • 2
    @Kevin awk перенаправление вполне отличается от оболочек один. >> добавит вывод awk к существующему содержанию файлов, > освободит файл и поместит полный вывод, не только последнюю строку. Поскольку детали смотрят staff.science.uu.nl / ~ oostr102/docs/nawk/nawk_38.html#SEC41 –  rush 13.08.2012, 15:43
  • 3
    @rush, Это действительно полезно.Большое спасибо. –  Allen Koo 13.08.2012, 16:18

По крайней мере, GNU находит, имеет -fprint вариант, с которым можно выполнить то, что Вы хотите с одной передачей файловой системы с помощью идиомы: find path -user user1 -fprint user1.txt.

Сначала генерируйте -user и -fprint аргументы:

findargs=""
for user in $(cut -d: -f1 /etc/passwd); do
  if [[ -z $findargs ]]; then
    findargs="-user $user -fprint $user.txt";
  else 
    findargs="$findargs -or -user $user -fprint $user.txt"
  fi
done

Вы теперь готовы проанализировать файловую систему:

find path/to/parse $findargs
1
27.01.2020, 22:01

Теги

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