Как классифицировать файлы в каталоге на основе их содержимого?

Как правильно указано в другом ответе, chronyреализует NTP и systemd-timesyncdSNTP.

С точки зрения клиента службы времени:

SNTP — гораздо более простой в реализации протокол;
NTP допускает шаг -с шагом -приращения/коррекции по времени. Одним из основных преимуществ NTP является то, что он также учитывает RTT ответа для получения более точного времени.

Изhttps://www.meinbergglobal.com/english/faq/faq_37.htm

While a full featured NTP server or client reaches a very high level of accuracy and avoids abrupt time steps as much as possible by using different mathematical and statistical methods and smooth clock speed adjustments, SNTP can only be recommended for simple applications, where the requirements for accuracy and reliability are not too demanding. By disregarding drift values and using simplified ways of system clock adjustment methods (often simple time stepping), SNTP achieves only a low quality time synchronisation when compared with a full NTP implementation.

SNTP adopts a much simpler approach. Many of the complexities of the NTP algorithm are removed. Rather than skewing time, many SNTP clients step time. This is fine for many applications where a simple time-stamp is required. Additionally, SNTP lacks the ability to monitor and filter multiple NTP servers. Often a simple round-robin approach is used, where if one server fails, the next one in a list is used

Изhttps://www.masterclock.com/company/masterclock-inc-blog/ntp-vs-sntp

NTP is far more accurate and precise than SNTP, and this makes it the de facto winner in most enterprise applications. On the other hand, the simplicity of SNTP makes it more appropriate for things like IP cameras, DVRs and some network switches. These types of hardware lack the processing resources to handle more complex protocols, but as connected devices become increasingly powerful, that may change.

One major weak point of SNTP is that you can't make it more accurate by retrieving time from multiple sources like Network Time Protocol does by default.

Еще один важный момент: я вижу, что реализации SNTP создают больше проблем, чем NTP в виртуализации, когда у вас есть и гипервизор, и демон NTP, пытающиеся изменить время виртуальной машины. Особенно, когда они не согласовывают время с некоторой неправильной конфигурацией, из-за которой они оба становятся активными, это может вызвать большие проблемы. (В то время как компетентные системные администраторы оставляют активным только один метод синхронизации со временем, может случиться так, что они оба активны из-за ошибки конфигурации ).

П.С. systemd-timesyncdне следует рекомендовать в качестве альтернативы, если не используется systemd.

2
12.08.2019, 10:37
2 ответа

Может быть, что-то вроде:

#! /bin/bash -
for f in *.csv; do
  IFS=, read -r timestamp rest < "$f" &&
    printf -v dir '%(%Y/%m/%d)T' "$timestamp" &&  
    mkdir -p -- "$dir" &&
    mv -- "$f" "$dir/"
done

Пример:

$ head -- *.csv
==> test2.csv <==
1328012580,A,B,C,D,E,F,G,H,I

==> test.csv <==
1565592149,A,B,C,D,E,F,G,H,I
$ that-script
$ tree
.
├── 2012
│   └── 01
│       └── 31
│           └── test2.csv
└── 2019
    └── 08
        └── 12
            └── test.csv

6 directories, 2 files
10
27.01.2020, 21:49

Чтобы выполнить часть вашего вопроса «каждые 2 минуты», вы можете поместить сценарий, подобный тому, который сделал Стефан Шазелас, и вызвать его с помощью задания cron.

Например, если ваши файлы CSV находятся в /home/user/dataи в этой папке у вас есть скрипт вscript.sh

  • затем вы можете запустить crontab -eдля редактирования пользовательского crontab
  • В конце файла вы должны добавить*/2 * * * * cd /home/user/data && /home/user/data/script.sh

Это приведет к тому, что скрипт будет запускаться каждые 2 минуты, если вы хотите изменить частоту, вы просто меняете части с помощью *, вы можете использовать crontab.guru , если вы незнакомы с настройкой crontab.

2
27.01.2020, 21:49

Теги

Похожие вопросы