Для процесса используется 11 ГБ зарезервированной плюс 10 ГБ общей памяти.
32 ГБ оперативной памяти плюс 64 ГБ подкачки. общая доступная память
TOP Показывает сумму всей буферизованной + кэшированной памяти, а не только для вашего отдельного процесса.
Утечка памяти со временем потребляет больше памяти, чем должно быть выделено.
Только программист знает, что такое нормальное поведение. Либо вы отлаживаете программу на предмет неучтенной памяти, которая не перераспределяется.
TOP недостаточно для этой задачи.
sar лучше наблюдать за поведением во времени.
shopt -s globstar nullglob
for pathname in out/**/*.html; do
newname=${pathname%.html}
mv "$pathname" "$newname"
aws2 s3 cp "$newname" "s3://$S3_BUCKET_NAME/"
done
Это касается
ls
(см. " Почему *не *анализировать `ls`(и что делать вместо этого )? " )(ваш цикл будет дополнительно перебирать всю остальную информацию , которая ls -l
выводит (разрешения, права собственности, метки времени и т. д. ), поэтому мне кажется странным, что вы говорите, что это работает на все )и sed
и т. д. в основном предназначены для редактирования строк текста; когда дело доходит до путей в Unix, они могут содержать символы новой строки (маловероятно, но это разрешено ); использование простой подстановки параметров для удаления суффикса имени файла безопаснее и быстрее, чем вызовsed
(иecho
)для этого )и out
, имена файлов которых заканчиваются на .html
, используя **
glob (, включенный с помощью параметра оболочки globstar
), и nullglob
параметра оболочки ). Дополнительно не нужно использовать cd
, так как значения $pathname
и $newname
будут включать полный путь от текущего каталога до любого совпадающего имени файла.