Самый простой способ - поместить команду time перед запущенной командой. Например:
$ time locate display-auto
/etc/cron.d/display-auto-brightness
/home/rick/Downloads/display-auto-brightness
/home/rick/Pictures/display-auto-brightness conky.png
/home/rick/Pictures/display-auto-brightness systray.png
/home/rick/Pictures/display-auto-brightness-config 1.png
/home/rick/Pictures/ps display-auto-brightness.png
/lib/systemd/system-sleep/display-auto-brightness
/mnt/e/etc/cron.d/display-auto-brightness
/mnt/e/lib/systemd/system-sleep/display-auto-brightness
/mnt/e/usr/local/bin/display-auto-brightness
/usr/local/bin/display-auto-brightness
real 0m0.826s
user 0m0.803s
sys 0m0.016s
Мы используем команду locate для поиска всех имен файлов с display-auto в именах. Просто добавьте команду time перед командой.
Вы можете использовать переменную $SECONDS внутри вашей чтобы получить время для его части. Например:
SECONDS=0
/bin/egrep -v "^#|^$" $BLOCKEDIPS_XS | while IFS= read -r ip
do
# Append everything to droplist
$IPTABLES -A droplist -i eth0 -s $ip -j LOG --log-prefix " Drop IP List blockxs "
$IPTABLES -A droplist -i eth0 -s $ip -j DROP
done <"$BLOCKEDIPS_XS"
timer stops, shows elapsed time
BlockTime=$SECONDS
echo "Total time to block IPs: $BlockTime Seconds"
В этом коде SECONDS сбрасывается на ноль, а затем получается после продолжительного процесса.
Временные метки в FAT32 слишком отличаются от unix, чтобы полагаться на них, чтобы проверить изменения файлов, вы также должны использовать ключ -c, он заставит rsync сравнивать все файлы, чтобы обнаруживать изменения, а не полагаться на отметки времени.
Наконец, в вашей команде есть несколько параметров, которые не могут работать с файловыми системами FAT32.
-l сохранит ссылки, FAT32 не имеет понятия ссылок -p будет пытаться сохранить разрешение, опять же никаких разрешений на FAT32 -t не будет пытаться сохранить временные метки модификации, есть только одна метка времени на FAT32 -g будет пытаться сохранить групповое владение, опять же не поддерживаемое FAT32 -D будет пытаться зарезервировать специальные файлы и устройства, вы теперь то, что здесь происходит.Как комментарии htorque, неверные параметры вам не повредит, они просто ничего не сделают. Но вы должны добавить ключ -c.
Это:
rsync -vrc source dest
должен работать (по крайней мере, он работает на моем компьютере).
У меня была аналогичная проблема в OSX, и ответ Глутанамата не помог. Некоторые файлы отличаются на час; это может быть связано с тем, что я часто отношусь к часовым поясам относительно часто. Другие файлы отключены на день или даже месяц. Я не знаю, почему это так. [* D0]
В любом случае, похоже, что опция --size-only, которая сообщает rsync игнорировать временные метки, будет работать для моих целей. -c / --checksum (как упоминалось Хавьером) также работает, но занимает немного больше времени. Я приурочил его, и потребовалось около минуты, чтобы сравнить контрольные суммы для GB или так в подкаталоге, с которым я работаю. Конечно, скорость, с которой это происходит, будет зависеть от самого медленного привода в системе; в моем случае это SD-карта в моем телефоне. Однако это произошло после того, как я уже делал некоторые манипуляции с файлами (включая контрольные суммы), поэтому многие из файлов, возможно, уже были скопированы в кеш оперативной памяти.
Вы также должны избегать использования популярной опции -a. Моя рекомендация FAT32 -
rsync -vrc --delete --progress --no-p source destination
- no-p: no permission
- удалить: удалить непревзойденные файлы и папку в пункте назначения (если вы действительно этого хотите)
- ход: показать ход во время передачи. Это хорошо для больших файлов.
Это слишком много флагов (-vrlptgD), которые вы используете. Помните, что rsync является утилитой Linux и не работает с Fat32 и NTFS эффективно.
Вам нужно будет охотиться за трюками, чтобы использовать его.
Попробуйте:
rsync -rvh --size-only --progress --delete /path/to/ext4/ /path/to/fat32/
Подробнее здесь