Пакет tkmib, кажется, был «сломан» в течение некоторого времени.
Взгляните на очень старую ошибку. Нет значений из OID с tkmib в списке рассылки Debian с 2010 года. Версия net-snmp по умолчанию, поставляемая с Ubuntu, была 5.4.3 и работает должным образом с другие SNMP-зависимые приложения (например, Cacti), но не с tkmib.
Недавно я скомпилировал новую версию net-snmp (версия 5.7.2) после Нет значений из OID с tkmib [ ! d2] и смог получить некоторое минимальное использование из tkmib.
После компиляции мне удалось получить некоторые значения, возвращаемые tkmib. Однако интерфейс приложения не действует, как можно было бы ожидать. То есть при выдаче запроса get в экземпляре MIB (например, запрос на MIS sysDesc, например) tkmib возвращает значение NOSUCHINSTANCE. Однако при выдаче запроса getnext в том же экземпляре возвращается фактическое ожидаемое значение.
Я настоятельно рекомендую использовать другой браузер MIB, например snmpb. Функциональность и интерфейс SnmpB намного превосходят для получения точных значений SNMP, на мой взгляд, по сравнению с tkmib.
Просмотр MIB, опрос, а также установка MIBS далеки менее болезненным, чем использование tkmib
Если вы настроены на использование tkmib, имейте в виду, что вам также необходимо вручную создать каталог ~/.snmp, чтобы сохранить любое из ваших измененных значений между сеансами.
Если вы хотите взять snmpb для вращения, вы можете загрузить файл .deb snmpb и установить его с помощью sudo dpkg -i snmpb_0.8_i386.deb
. Желаем удачи.
Использовать bash's for (если вы используете bash):
for file in blah.*.txt; do
cp original.txt "$file"
done
Вы можете попробовать это, избегая for-loops и сохраняя вещи в одной строке:
ls blah.* | xargs -n 1 cp original
Вы получаете cp: target blah.1.txt is not a directory в своей первоначальной попытке, потому что cp ' В нескольких файлах предполагается, что все они будут перенесены в каталог, предоставленный в качестве последнего аргумента. Это просто неправильный синтаксис. Цитирование man cp:
SYNOPSIS
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
DESCRIPTION
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
Единственно использование cp не поможет вам. См. Также этот вопрос.
Сделайте это:
for i in `ls *.txt`; do cat original > $i; done
, где оригинал является текстовым файлом. cat просто сбрасывает содержимое, а > передает содержимое в новый файл, представленный $i (расширенный из списка, возвращаемого командой ls *.txt)
Обратите внимание, что это полностью перезапишет эти файлы, чтобы вы могли сначала добавить их в другой каталог. Это будет сделано для чего-либо с расширением .txt (включая исходный файл, если это расширение .txt), поэтому вы можете захотеть переименовать вещи или использовать лучшее соглашение (например, blah * вместо * .txt) [!d2 ]
find ./ -name 'blah.*.txt' -exec cp original.txt {} \;
Вы спрашиваете find, чтобы начать в текущем каталоге и найти файлы, имя которых соответствует шаблону (в кавычках, чтобы избежать оболочки расширяя его и позволяя найти расширение шаблона), и для каждого найденного файла выполните команду между -exec и \;. В этой команде {} заменяется на имя найденного файла
Посмотрите на этот ответ за хорошую сделку информации об использовании find эффективно. :
Как я могу использовать найти команду более эффективно?