Если у Вас есть a /proc
файловая система, файл /proc/modules
существует, если и только если ядро, если скомпилировано с модулем поддерживает. Если файл существует, но пуст, Ваше ядро поддерживает модули, но ни один не загружается в данный момент. Если файл не существует, Ваше ядро не может загрузить модуль.
Технически возможно иметь поддержку загружаемого модуля без /proc
. Можно проверить на присутствие init_module
и delete_module
системные вызовы в двоичном файле ядра. Это не может быть легко, если у Вас только есть сжатый двоичный файл (например. vmlinuz
или uImage
). Посмотрите, Как я распаковываю vmlinuz к vmlinux? для vmlinuz
. После того как Вам удалось распаковать объем ядра, ищите строку sys_init_module
.
Обратите внимание, если модули поддерживаются, необходимость в дополнительных файлах для компиляции собственных модулей так или иначе: заголовки ядрa. Это заголовочные файлы C (*.h
), некоторые из которых сгенерированы, когда ядро компилируется (таким образом, Вы не можете только взять их из источника ядра). Посмотрите то, Что ядро получает дерево, содержат? Это связано с заголовками ядрa Linux?
find /home/abdul/backup -daystart -name '*.gz' -mtime -7 -exec du -h '{}' ';'
Как это работает:
find
- делает то, что это говорит относительно олова; так как Вы не указывали, какую операционную систему Вы используете, я предполагаю здесь, что у Вас есть доступ к GNU, находят.
/home/abdul/backup
- начальный каталог
-daystart
- времена меры начиная с запуска дня (может или может не быть тем, что Вы хотите),
-name '*.gz'
- только рассмотрите файлы с именами, заканчивающимися в .gz
(или более точно, соответствуя *.gz
)
-mtime -7
- время изменения файла в течение прошлых 7*24 часов, принимая во внимание-daystart
-exec du -h '{}' ';'
- выполниться du
распечатать размер именованного файла, в человекочитаемых единицах ({}
расширяется до рассматриваемого имени файла),
Это перечислит все файлы, которые были изменены за прошлые 7 дней. В зависимости от которого точная ОС и файловая система Вы работаете, могло бы быть возможно основывать проверку на времени создания файла, но многие *отклоняют системы, не отслеживают время, когда файл был первоначально создан или "перенесен".
find . -ctime -7 | xargs ls -l | awk '{ TOTAL += $5;} END{print TOTAL;}'
Это сначала перечислит файлы меньше чем с 7*24 часами в текущем каталоге, получит их размер в байтах, подведет итог его и предоставит Вам результат.
-atime
должен соответствовать на основе "Файла, был в последний раз получен доступ несколько n*24 часы назад".. Ваш отличающийся?
– a CVn
17.07.2013, 15:14
Если Ваши имена файлов не содержат пробелы или другие странные символы, Вы могли бы просто сделать это:
du -sch "$(find /home/abdul/backup -name '*.gz' -mtime +7) "
Для пробелов и других странных символов, используйте это вместо этого:
find /home/abdul/backup -name '*.gz' -mtime -7 -print0 | xargs -0 du -sch
Если у Вас будет много файлов, которые соответствуют Вашим критериям обе из команд выше, то перестанет работать. Первое, потому что список файлов является слишком длинным и вторым потому что xargs
разделит на несколько команд и возвратит общее количество для каждого подмножества.
Другое решение, которое избегает этих проблем, (благодаря Paulo Almeida, комментарий которого упомянул это):
find /home/abdul/backup -name '*.gz' -mtime -7 -print0 | du -sch --files0-from -
От man du
:
--files0-from=F
summarize disk usage of the NUL-terminated
file names specified in file F; If F is - then
read names from standard input
';'
кому:+
и добавьте-s
опция кdu
получить общее количество. – jordanm 17.07.2013, 15:59find ~ -daystart -mtime 7 -exec du -sh '{}' '+'
. Я пропускаю что-то? Немного более портативный – a CVn 17.07.2013, 16:13-mtime -7
не так ли? В моей системе, по крайней мере,-mtime 7
будет только соответствовать файлам, измененным точно 7 дней назад. – terdon♦ 17.07.2013, 16:59+
передаст столько параметров, сколько это может к синглуdu
процесс, каждый как отдельный аргумент, который означалdu
все еще произведет результат для каждого файла. Выполнять сводное использование--files0-from=- -hsc
– Paulo Almeida 17.07.2013, 22:44