Вы можете попробовать
while true; do ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10 >> logfile.txt; echo "\n" >> logfile.txt; sleep 3; done
Этот скрипт покажет вам десять лучших процессов по использованию процессора.
человек mksquashfs:
-keep-as-directory
if one source directory is specified, create a root directory con‐
taining that directory, rather than the contents of the directory.
Наверное, нет простого пути ,но вы можете сделать это с большим усилием, используя расширенный синтаксис исключения подстановочных знаков. Это может быть не задокументировано на странице руководства, но больше упоминается в README . Однако для получения подробной информации о синтаксисе вам необходимо просмотреть справочную страницу для fnmatch(3)
.
По сути, вы можете использовать !(somedir)
в качестве исключения для , а не исключения, так что в итоге вы включите только этот каталог. Представьте, что у вас есть следующий пример дерева в/tmp
$ mkdir -p a/b d/e d/e2
$ touch a/b/c d/e/f d/e2/f2
, и вы хотите скопировать только a
и d/e
, сохранив при этом эти полные пути. Вы можете использовать
$ echo '!(a)' >exclude
$ mksquashfs /tmp mysq -ef exclude -wildcards
$ echo -e '!(d)/\nd/!(e)' >exclude
$ mksquashfs /tmp mysq -ef exclude -wildcards
Перечисление файловой системы с помощью unsquashfs -l mysq
приводит к выводу
squashfs-root/a
squashfs-root/a/b
squashfs-root/a/b/c
squashfs-root/d
squashfs-root/d/e
squashfs-root/d/e/f
Каждый раз исходным каталогом является /tmp
, но в первый раз мы исключаем все, кроме каталога a
, а во второй раз мы исключаем все, кроме каталогов d
и d/e
. При этом используется многоуровневый файл исключения -, где в каждой строке мы исключаем еще один шаг каталога в пути, кроме того, который должен быть сохранен.
Более простое решение состоит в том, чтобы где-то создать желаемую иерархию каталогов и mount -bind
конечный каталог в реальном каталоге. Например,
$ mkdir -p a/usr/local/bin a/some/other/bin
$ sudo mount -o bind /usr/local/bin a/usr/local/bin
$ sudo mount -o bind /some/other/bin a/some/other/bin
$ mksquashfs a ~/mysq
$ sudo umount a/usr/local/bin a/some/other/bin
Основано на ответе @meuh (, который мне было немного трудно понять):
mksquashfs / MyNewImage.squashfs -wildcards -e \
!(bin|usr|some|another) \
usr/!(bin|local) \
usr/local/!(bin) \
some/!(other) \
some/other/!(random) \
some/other/random/!(folder) \
another/!(long) \
another/long/!(path)
Я также был бы рад получить более понятную и краткую возможность и подал запрос на ее добавление:https://github.com/plougher/squashfs-tools/issues/80.