Я отправился с , назначив локальные группы пользователям через pam_group, чтобы получить ту же функциональность. В /etc/security/groups.conf
я добавил следующую строку
*;*;%administrators;Al0000-2400;adm,sudo,lpadmin
Таким образом, любой пользователь LDAP, принадлежащий к группе LDAP администраторы
, будет сопоставлен с локальными группами adm
, sudo
и lpadmin
в поле. Кажется, проще, чем установить sudo-ldap
, если я не упускаю чего-либо?
-121--55256-
Невозможно добавить haveded в контейнер, так как он совместно использует ядро с хостом.
-121--246453-
Вы можете запустить sudo pkill Xorg
, который убьет сервер X11, который затем перезапустится для приглашения входа.
Эти методы проще, проще запомнить и универсальнее, чем перезапуск базовой службы. Служба может изменяться в зависимости от выбранного дистрибутива Linux, выпуска или графической среды, но имя сервера X гораздо более стабильно; он не менялся с десяти лет.
Если вы хотите восстановить незавершенную работу, вместо уничтожения X-сервера, который немедленно уничтожит все X-клиенты (приложения), вы можете определить фиктивную программу, которая заморозила ваш рабочий стол, обычно это приложение или настольный компонент, который захватил мышь и сохранил ее, и убить или перезапустить этот точный компонент. С Mint 17,2 и рабочим столом Приятеля это часто происходит со мной с матпанелью
.
Попробуйте это (, предполагая, что GNU find
и имена файлов не содержат двойных кавычек):
{
printf '%s\t%s\n' size path
find / \( -path /proc -o -path /sys \) -prune -o -printf '%s\t"%P"\n' |
numfmt --to=iec
} > outputfile.csv
Проверить
man find | less +/'-printf format'
или
info --ind=-printf find
sudo du -h / 2>/dev/null > out.csv
sudo
, чтобы убедиться, что вы прочитали все файлы. -h
с du
для формата «h человекочитаемый». 2>/dev/null
, где 2
— стандартная ошибка)> out.csv
). Это создает список с размером файла и путем, с табуляцией между значениями.
С GNU stat
иbash
globstar
:
shopt -s globstar
stat --printf="%s\t%n\n" -- ** | numfmt -d $'\t' --to=iec >out.csv
Это включает каталоги, но это тоже файлы...
Как указывает @Patrick, это может привести к argument list too long
из-за **
. Можно было бы использовать find
вместо:
sudo find / -type f -exec stat --printf="%s\t%n\n" -- {} \; | numfmt -d $'\t' --to=iec
Примечание. :Приведенная ниже команда делает немного больше, чем вы просили, но может оказаться чрезвычайно полезной для других людей.
Вот команда, которую мы разработали с коллегой и передали группам поддержки приложений, которым необходимо работать с полными дисками:
find / -xdev \! -path /var/log/lastlog -printf '%s\t%p\n' | sort -rn | head | cut -f2- | xargs -n1 ls -lh | awk '{print $5, $NF}'
Вот та же команда с разрывами строк для облегчения чтения:
find / -xdev \! -path /var/log/lastlog -printf '%s\t%p\n' |
sort -rn | head | cut -f2- |
xargs -n1 ls -lh | awk '{print $5, $NF}'
Эта команда выводит 10 самых больших файлов в корневой файловой системе, а также удобочитаемый -размер файла для каждого из них.
Для получения точных результатов эту команду необходимо запустить от имени пользователя root .
-xdev
позволяет избежать пересечения границ файловой системы, что может быть важно, если NFS может работать медленно.
/var/log/lastlog
игнорируется, так как это разреженный файл, который ложно сообщает об огромном размере (, т. е. не вызывает проблем с заполнением диска ).
-printf
специфичен для GNU find. В этом случае он печатает размер файла в байтах, за которым следует полный путь к файлу.
На самом деле вы можете оставить все после команды head
, и единственное, что вы потеряете, — это размеры файлов, -удобочитаемые для человека.
Так что следующее работает отлично:
find / -xdev \! -path /var/log/lastlog -printf '%s\t%p\n' | sort -rn | head
Эта команда не работает , если у вас есть имена файлов с символами новой строки. Но так как эта команда предназначена для ручной обработки человеком-оператором (, а не для использования в сценариях ), это не имеет решающего значения.
My goal is to measure the file size (in MB or GB) for every file on my Linux system, recursively recording the filename and filesize, and piping the output into a tab-delimited text file.
Я проигнорирую требование МБ или ГБ и просто сообщу размер файла в байтах, так как это НАМНОГО, НАМНОГО проще сделать. См. команду выше, чтобы узнать, как это сделать, если вам действительно нужно.
sudo find / -printf '%s\t%p\n' > outputfile.txt