В случае, если использование scikit-learn разрешено, я бы дал следующий шанс:
from sklearn.neighbors import DistanceMetric
dist = DistanceMetric.get_metric('haversine')
# example data
lat1, lon1 = 36.4256345, -5.1510261
lat2, lon2 = 40.4165, -3.7026
lon1, lat1, lon2, lat2 = map(np.radians, [lon1, lat1, lon2, lat2])
X = [[lat1, lon1],
[lat2, lon2]]
kms = 6367
print(kms * dist.pairwise(X))
Вы можете использовать su -c history username
, чтобы проверить историю команд пользователя, я не знаю, сколько у вас пользователей, но вы можете просмотреть их и выполнить grep для команд, снимающих док-контейнеры.
Вы можете установить GNU Accounting Utilities
, чтобы иметь возможность видеть команды, выполняемые пользователями:
#centos
yum install psacct
# ubuntu:
apt-get install acct
#Also make sure that the cooresponding service is enabled:
/etc/init.d/psacct status
Затем, после того, как вы поймете, что контейнер остановлен, выполните:
lastcomm --command docker
# or
lastcomm --command kill
чтобы увидеть, кто выполнил вышеупомянутую команду (ы).
Вы можете использовать вышеупомянутое в комбинации с:
docker container logs <name-of-the-container>
, чтобы увидеть точное время, когда контейнер был остановлен. (Например, вы можете увидеть сообщение в журналах: «Остановка службы ..») и сопоставить его с выводом lastcomm
.
Другие полезные команды, которые поставляются с вышеуказанным пакетом: sa
, ac