Там какой-либо путь состоит в том, чтобы отредактировать каналы, в то время как процесс работает?

Попытайтесь выключить исходную плату Ethernet в своем BIOS. Возможно, они конфликтуют?

3
21.04.2015, 16:26
3 ответа

Я полагаю, что некоторые контрольный процесс нельзя избежать. Я могу думать о разных подходах. Либо динамический сопоставитель Pattern (вместо GREP ) вдоль ядра awk '$ 0 ~ pat' , где будет динамически загружаться . GNU AWK Сопровождение). Или некоторое примитивное устройство впрыска с шаблоном, где Directives директивы вставляются в потоке данных, так что фильтр может легко отрегулировать рисунок на лету, вдоль линий :

mkfifo cmdfifo       # create once an asynchroneous communication channel

{ while read cmd < cmdfifo ; do printf "%s\n" "@$cmd" ; done &
  heavy_process ;} |
    awk '
        /^@/ { pat = substr($0,2) ; next }   # parse the injected pattern
        pat !="" && $0 ~ pat     # if pattern is set print matching lines
    '

Чтобы активировать или переключать поиск определенного шаблона, который вы должны использовать, например,

echo bar > cmdfifo

, чтобы активировать совпадение для «бара», а последующий

echo foo > cmdfifo

динамически меняет шаблон на «foo».

1
27.01.2020, 21:47

Попробуйте решить эту проблему: Загрузочный USB с помощью cmd

-121--229716-

Из passwd (1) manpage :

-S , -status

Дисплеев информация о состоянии учетной записи. Информация о статусе состоит из 7 полей. Первое поле - имя пользователя для входа в систему. Второе поле указывает, заблокирована ли учетная запись пользователя пароль (L), не имеет пароля (NP) или имеет используемый пароль (P). В третьем поле указывается дата последнего изменения пароля. следующие четыре поля - минимальный возраст, максимальный возраст, предупреждение период и период бездействия для пароля. Эти возрасты выражается в днях.

-121--153542-

Сценарий можно написать следующим образом:

#! /bin/bash
while true;
do
        echo -n "Enter your regexp: "
        read myregexp
        heavy_process | grep "$myregexp"
done

Вы можете прервать процесс в любой момент с помощью Ctrl-c

-2
27.01.2020, 21:47

Поэтому /var/www/public _ html фактически является папкой Windows, но /var/www/data - нет? Вы пытаетесь создать символическую ссылку из каталога Windows в каталог Ubuntu на виртуальной машине. Нет пути, что Windows может поддерживать такой объект.

Для расширения вышесказанного: я думаю, что суть в том, что хост Windows настроен как файловый сервер, обеспечение доступности C :\Users\Tom _ Hart\Documents\development\public _ html клиентам - в частности, предоставление доступа для чтения/записи к образу Ubuntu, таким образом, Ubuntu может читать, изменять и создавать объекты в этом каталоге Windows и в нем. Но, в общем, серверы не имеют видимости своих клиентов (Каково бы вам было, если бы Google начал индексировать ваши файлы и вернуть их в результатах поиска?) Если образ Docker не экспортирует свои файлы, У Windows нет пути на доступ к /var/www/data - или даже понять такой путь; например,

     C :\Users\Tom _ Hart\Documents > notepad/var/www/data/cache/widget/overlay/ что-то 

не сработает (может показаться, что вы имеете в виду C :\var\www\data\cache\... ). Кажется естественным, что Windows откажется от создания символической ссылки, в каталоге Windows, к ресурсу, к которому не могут получить доступ процессы Windows.

-121--89256-

Здесь есть две возможности:

  1. Вас смущает (по общему признанию, запутанное) поведение df и root-reserved space
  2. Вы удалили (несвязали) одну жесткую ссылку на файлы, есть еще.

Лично я подозреваю, что вы видите # 1. Ниже приводится подробная информация, а также некоторые заключительные замечания.

Запутанное поведение df

Если файловая система заполнена полностью, как пользователь, не являющийся пользователем root, это выглядит следующим образом:

Filesystem      Size  Used Avail Use% Mounted on
/dev/md10       248M  236M  1.0K 100% /boot

, но для корня зарезервировано пространство, обычно 5%. Если root заполняет его, это то, как выглядит df (в случае этой крошечной файловой системы, это еще одна 13 МБ):

Filesystem      Size  Used Avail Use% Mounted on
/dev/md10       248M  248M     0 100% /boot

Обратите внимание, что она пошла от 100% привыкла к... Используется 100%. Несмотря на фактически быть еще 5% используется. Поле Used изменилось, как и ожидалось, но поле avail только что изменилось с 1K на 0.

А что происходит, когда вы удаляете первый 13MB данных? Ну, вы возвращаетесь к первому выходу - вы освободили 5%, но все еще при 100% использования и почти не доступны.

Вывод: если вы хотите посмотреть, сколько места вы на самом деле освобождаете, посмотрите на столбец Used - не Avail , не Use% .

Не было последней жесткой ссылки

rm на самом деле не удаляет файлы. Это их разъединяет - то есть удаляет с них жесткие связи. Каждая hardlink дает файлу одно имя, в основном. Если у файла не осталось ссылок (и он не открыт и т.д.), то только тогда файл фактически удаляется.

Файл фактически однозначно идентифицируется в файловой системе, независимо от количества его имен, по его inode-номеру.Если вы знаете номера inode для этих файлов, вы можете использовать find -inum , чтобы найти все жесткие ссылки на них - но вы, вероятно, нет. При наличии связанных файлов для очистки можно получить номера inode из stat . Затем вы можете использовать find/path/to/mount -inum NUMBER , чтобы найти все жесткие ссылки на этот файл (включая имя, которое вы только что запустили). Кроме того, после фактического удаления файла можно повторно использовать номера inode.

Запомните: номера inode на файловую систему . Таким образом, два разных файла могут быть 42 inode в двух разных файловых системах. Только в одной файловой системе гарантировано, что inode 42 всегда будет одним и тем же файлом. Кроме того, номера inode не всегда работают правильно с сетевыми файловыми системами или файловыми системами, отличными от Unix. Но вы используете ext4, где определенно делают.

Кроме этого, вам просто придется найти любые другие имена, чтобы удалить обычные способы (например, путем поиска больших вещей с xdiskusage , как вы уже делаете)

Общие замечания

Папки корзины являются только каталогами. Если бы они были полны мусора, который вам не удалось удалить, они бы показали в xdiskusage .

Вы должны рассмотреть систему резервного копирования, которая может лучше обрабатывать удаление старых резервных копий для вас - выполнение ее вручную подвержено ошибкам. Хуже того, это также может быть забыто, что приводит к сбоям резервного копирования - и восстановление, как правило, последних данных (например, случайное удаление, поврежденный файл, отказ диска), а не старые данные («О да, мне нужна была вещь, которую я удалил в прошлом году»...)поэтому «сбой полного резервного копирования на диск» означает, что вы фактически отбрасываете наиболее ценные данные (новая резервная копия) для сохранения наименее ценных данных (эта резервная копия двухлетней давности).

-121--133438-

Я считаю, что ваше собственное предложение - лучшее решение, с изменением, выполняемым командой в фоновом режиме:

heavy_process > some_file &

Добавить 2 > & 1 , если heavy _ process записывает текст в stderr , которую вы хотите иметь возможность искать. Так как вы говорите, что программы «Заносите много информации в стандарт», Рекомендуется не использовать 2 > & 1 . & в конце команды вызывает асинхронное выполнение процесса; что означает, что вы можете использовать свой терминал для других вещей пока он работает. В зависимости от того, какую оболочку вы используете, вы, вероятно, будете уведомлены, когда он прекратится.

Для поиска через выходные данные процесса на данный момент требуется только

grep foo some_file

Для поиска через выходные данные на данный момент и продолжайте следить за файлом, когда процесс записывает в него , используйте

tail -n +1 -f some_file | grep foo

Без -n + 1 , tail даст вам только последние 10 строки файла.

0
27.01.2020, 21:47

Теги

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