Я не уверен, что хвост-f работы метода (хотя он, вероятно, делает, если файл является текстом). Причина состоит в том, что я не знаю, как хвост-f и sftp передают и полагаются на метаинформацию.
Если sftp передает метаинформацию сначала, и хвост-f полагается на метаинформацию, чтобы сказать этому, что больше нет файла, то хвост может плохо конец с EOFs или аннулирует.
Если Вы не заботитесь о пути загрузки т.е. Компьютера о 1 загрузке на компьютер 2 загрузки на компьютер 3, то Вы могли бы попробовать главное использование bittorent вместо sftp. Это кажется тем, для именно это это было разработано.
Можно описать собственный сценарий, который использует ps
перечислять все процессы в выполнении, состояния / выполнимом состояния без хорошего значения, больше, чем 0. Определенный синтаксис, который необходимо использовать, будет отличаться на основе версии ps
. Что-то вроде этого может работать:
ps -eo state,nice | awk 'BEGIN {c=0} $2<=0 && $1 ~ /R/ { c++ } END {print c-2}'
Это работает ps
сбор state
и nice
уровень всех процессов и каналов вывод к awk
который устанавливает переменную количества c
и инкременты он каждый раз, когда второй (хороший) столбец меньше чем или равен 0 и первый столбец, включает R (для выполнимого). После того как это сделало это, распечатывает значение c
после вычитания 2. Я вычитаю 2, потому что PS и команды awk будут почти всегда считать выполнимыми на время выполнения команды. Конечным результатом будет единственное число, которое представляет количество процессов, которые были выполнимы в то время, когда сценарий выполнился, исключая себя и выполненные процессы nicely
, который является по существу мгновенной нагрузкой на машине. Необходимо было бы периодически выполнять это и насчитывать его более чем 1, 5, и 15 минут для определения типичных средних чисел загрузки машины.
Мне просто нужно было что-то подобное. Мне помог ответ от мкомитее .
Но команда ps -e
перечисляет только процессы. При загрузке
необходимо учитывать, что у процесса может быть много параллельных потоков.
Я предлагаю добавить параметр -L
к вызову ps
, чтобы вывести список всех потоков:
ps -eLo state,nice | awk 'BEGIN {c=0} $2<=0 && $1 ~ /R/ { c++ } END {print c-2}'