У меня нет конкретной причины, но мое инстинктивное чувство говорит мне, что следующее может быть лучшим подходом:
Альтернатива 11: запустите VM и смонтируйте файловые системы без полного fsck.
Обоснование состоит в том, что я не хочу, чтобы гипервизор Xen больше имел шанс что абсолютно необходимый для порождения повреждения в domU файловых системах.
scp
не очень умный: при использовании нескольких аргументов командной строки, являющихся файлами с одного удаленного узла, открывается новое подключение для каждого аргумента.
Можно использовать rsync
вместо scp
, это умнее (и другими способами).
rsync -r -e 'ssh -P PORT' user@host:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/
Другой подход состоит в том, чтобы передать один аргумент в scp
, который описывает несколько файлов .
Другой подход состоит в том, чтобы настроить систему таким образом, чтобы не приходилось постоянно проверять подлинность. Предпочтительно установить аутентификацию ключа , которая в большинстве сценариев является более удобной и более безопасной. В качестве альтернативы или в дополнение установите общий доступ к соединениям , чтобы аутентификация выполнялась только один раз в сеансе. В любом случае набор псевдоним, чтобы не указывать имя пользователя и порт каждый раз. В файле ~/.ssh/config
:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Host nick
HostName real-host-name.example.com
User bob
Port 1234
Выполните команду ssh -Nf nick
, чтобы открыть соединение, а затем все последующие подключения к nick
будут подключены к существующему соединению. Теперь вы можете просто запустить
scp -r nick:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/
-121--43157- На земле GNU:
find . -mindepth 1 -maxdepth 1 -type d -printf . | wc -c
в другом месте
find . -type d ! -name . -printf . -prune | wc -c
В bash:
shopt -s dotglob
count=0
for dir in *; do
test -d "$dir" || continue
test . = "$dir" && continue
test .. = "$dir" && continue
((count++))
done
echo $count
-121--66671- На самом деле температура не хранится нигде. /sys
является файловой системой в памяти , и чтение из файлов в /sys
вызывает код в ядре, который вычисляет значения на лету.
Различные каталоги соответствуют различным способам, с помощью которых аппаратные средства могут сообщать о температурах. Файлы temp * _ input
имеют соответствующую метку temp * _
, определяющую температуру компонента.
Расположение в /sys
, как правило, варьируется от версии ядра к версии ядра (не от распространения к распространению). Это трудность, с которой приходится работать авторам программ, считывающих данные в /sys
( пример ).
Первый, /sys/class
является удобным способом найти вещи в /sys
. Вы найдете, что все внутри - на самом деле символьная ссылка; я вполне уверен, ваша первая строка файла конфигурации является symlink'd к вашей третьей строке файла конфигурации.
2-я строка файла конфигурации является ядром, читая температуру непосредственно из ЦП/чипсета. 3-я строка файла конфигурации является ядром, получая значение от BIOS через ACPI. В то время как в вашей системе они могут дать тот же ответ, им нужно не (например, BIOS мог использовать различные датчики, составляя в среднем некоторых вместе, или применяя некоторую определенную для платы корректировку).
Наконец, каждая строка файла конфигурации имеет два различных чтения, потому что там вероятны два термометра. Или по крайней мере, API аппаратных средств допускает его.
Взгляните на файлы * _label, чтобы узнать, о чем идет речь - вот мой i5:
$ grep "" /sys/devices/platform/coretemp.?/hwmon/hwmon?/temp?_label
/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp1_label:Physical id 0
/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_label:Core 0
/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp3_label:Core 1
(grep "" просто используется как "кот с именами файлов")
Итак, вот общая температура CPU, плюс температура на ядро.
В более крупной многопроцессорной системе вы можете увидеть десятки записей.