Вывод ls-lht
-rwxrwxrwx 1 root root 1.6G Jan 3 05:32 vServer.log
При выполнении ls -lht
я могу добавить в чем-то, что только покажет размер, ультрасовременную дату и имя файла?
1.6G Jan 3 05:32 vServer.log
Использование: я создаю резервную копию файлов от liveserver до backupserver через rsync, но я хочу сравнить каталоги, чтобы видеть если там, если существует новый файл на liveserver прежде, чем выполнить rsync, таким образом, я могу отправить предупреждение по электронной почте, если нет никакого нового файла.
Если Вы только хотите
1.6G Jan 3 05:32 vServer.log
от
-rwxrwxrwx 1 root root 1.6G Jan 3 05:32 vServer.log
затем Вы могли использовать awk для удаления первых четырех столбцов.
ls -lht vServer.log | awk '{$1=$2=$3=$4=""; print $0}'
Если Вы только хотите сравнить различие в файлах и каталогах между живыми и серверами резервного копирования, можно попробовать пробный прогон rsync как ниже.
rsync -ravun --delete {source} {destination} |grep "^deleting "
От человека rsync:
u - пропускают файлы, которые являются более новыми на получателе
, n - работают, пробный прогон без изменений сделал
Используйте stat
для получения информации о конкретных файлах вместо ls
. Выходные данные stat
более настраиваемы, так как они принимают строку формата:
$ stat -c '%s %y %n' /var/log/Xorg.0.log
82346 2017-01-03 19:26:17.799547336 +0900 /var/log/Xorg.0.log
$ stat -c '%s %Y %n' /var/log/Xorg.0.log
82346 1483439177 /var/log/Xorg.0.log
%y
и %Y
- это время последней модификации, первая метка времени Unix, последняя читаемая человеком. Для простой обработки информации в скрипте удобнее использовать %y
.
Чтобы получить поведение -t
, вы можете sort
вывести (во втором поле -k2,2
, численно -n
, наоборот -r
):
stat -c '%s %y %n' | sort -rnk2,2
( Я предполагаю, что у вас нет новых строк в именах файлов или путях, что, как я полагаю, является безопасным допущением для журналов, но если вы это сделаете, опция --printf
stat
позволяет вам создавать вывод, разделенный нулями, который sort
может нормально работать с -z
.)