Из-за взаимозависимости ваших команд очень вероятно, что любая сетевая ошибка, вызванная wget, вызовет -ненулевой выход, что приведет к неполной цепочке событий.
Поскольку это cron, вы ограничены тем, что возможно, я предлагаю перенести эту логику в простой сценарий bash.
Если вы загружаете много данных, вы можете использовать aria2 , чтобы загрузить их быстрее, но это зависит от того, является ли ваш источник динамическим или нет.
Простым подходом к решению проблемы было бы заставить его повторить попытку и перехватить сигнал выхода
cd path/to
while [ 1 ]; do
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0 -c [download link]
if [ $? = 0 ]; then break; fi
done
csvjoin ...
...
Семейство утилит systat делает подобные вещи посредством учета процессов.
Для долгосрочного исторического и статистического анализа необходимо включить систему учета процессов, см. этот ответ. После того как вы включили учет процессов, вы можете использовать такие команды, как sadf
, для извлечения и суммирования статистики.
Более срочные инструменты в пакете sysstat включают pidstat
, которые могут отображать активность процесса во время его работы.