В настоящее время я пытаюсь протестировать bash-скрипт в 4 разных версиях. Каждый выполняет гигантскую rsync
работу, и обычно она занимает очень много времени. В сценарии bash есть много шагов, которые включают в себя настройку и разрушение среды для rsync.
Однако, когда я запускаю strace для сценариев bash, я получаю удивительно короткие результаты, что заставляет меня поверить, что strace
на самом деле не отслеживает время ожидания такой команды, как rsync (которая может появляться в подоболочке и rsync полностью не записывается), или , он периодически просыпается и спит в течение другого периода времени, который не учитывает strace. Вот фрагмент кода:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
99.98 12.972555 120116 108 52 wait4
0.01 0.000751 13 56 clone
0.00 0.000380 1 553 rt_sigprocmask
0.00 0.000303 2 197 85 stat
0.00 0.000274 2 134 read
0.00 0.000223 19 12 open
0.00 0.000190 48 4 getdents
0.00 0.000110 1 82 8 close
0.00 0.000110 1 153 rt_sigaction
0.00 0.000084 1 61 getegid
0.00 0.000074 4 19 write
Итак, какие инструменты я могу использовать, которые похожи на strace
, ИЛИ, может быть, я пропускаю какой-то тип рекурсивного флага в strace
, чтобы правильно узнать, где находится мой bash-скрипт?
Я бы хотел что-то вроде:
% time command
------ --------
... rsync
... ls
Любые предложения будут оценены. Спасибо!