Как установить или изменить часовой пояс в ubuntu 18.04

Устранение проблем

Двойная загрузка с Windows

Системы с возможностью загрузки другой операционной системы, например Windows, обычно будут испытывать проблемы с переназначением аппаратных часов. Чтобы сделать так, чтобы Windows не меняла аппаратные часы назад в локальное время, добавьте в реестр следующую запись.

В 64-битной версии Windows откройте regedit и перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation. Создайте запись RealTimeIsUniversal с типом QWORD и установить её значение в . После этого перезагрузите систему. Теперь системные часы будут в формате UTC.

How to get the current epoch time in …

PHP More PHP
Python Source
Ruby (or ). To display the epoch:
Perl More Perl
Java Returns epoch in seconds.
C# (.NET Framework 4.6+/.NET Core), older versions:
Objective-C (returns double) or
C++11
Lua
VBScript/ASP
AutoIT
Delphi Tested in Delphi 2010.
R
Erlang/OTP (version 18+), older versions:
MySQL More MySQL examples
PostgreSQL
SQLite
Oracle PL/SQL
SQL Server
IBM Informix
JavaScript The getTime method returns the time in milliseconds.
Visual FoxPro Warning: time zones not handled correctly
Go
Adobe ColdFusion
Tcl/Tk
Unix/Linux Shell
Solaris Solaris doesn’t support date +%s, but the default seed value for nawk’s random-number generator is the number of seconds since the epoch.
PowerShell
Other OS’s Command line: (If Perl is installed on your system)

ls command example to find files by date

The syntax is as follows:

ls -l  
ls -lt
ls -ltu
ls -lt etc | more

Sample outputs:

drwxr-xr-x 2 root root    4096 Sep 24 11:42 sysctl.d
drwxr-xr-x 2 root root    4096 Sep 24 11:42 logrotate.d
drwxr-xr-x 2 root root    4096 Sep 24 11:42 init
drwxr-xr-x 2 root root    4096 Sep 24 11:42 init.d
drwxr-xr-x 2 root root    4096 Sep 24 11:42 dnsmasq.d-available
drwxr-xr-x 2 root root    4096 Sep 23 06:22 bash_completion.d
-rw-r--r-- 1 root root   22667 Sep 22 18:17 ld.so.cache
drwxr-xr-x 9 root root    4096 Sep 22 18:17 apparmor.d
drwxr-xr-x 2 root root    4096 Sep 21 06:21 ssh
drwxr-xr-x 2 root root    4096 Sep 20 05:35 python3.5
-rw-r--r-- 1 root root    3611 Sep 20 05:35 mailcap
drwxr-xr-x 3 root root    4096 Sep 13 12:29 apparmor
drwxr-xr-x 7 root root    4096 Aug 22 21:07 network
-rw-r--r-- 1 root root     929 Aug 22 21:07 resolv.conf
-rw-r--r-- 1 root root     492 Aug 22 21:07 fstab
drwxr-xr-x 2 root root    4096 Aug 22 16:31 cron.hourly
drwxr-xr-x 2 root root    4096 Aug 22 16:29 percona-toolkit
drwxr-xr-x 2 root root    4096 Aug 22 16:29 gdb
drwxr-xr-x 2 root root    4096 Aug 18 21:28 cron.daily
...
..
...
-rw-r--r-- 1 root root     575 Oct 22  2015 profile
-rw-r--r-- 1 root root   10368 Oct  2  2015 sensors3.conf
-rw-r--r-- 1 root root    2188 Aug 31  2015 bash.bashrc
-rw-r--r-- 1 root root      45 Aug 12  2015 bash_completion
-rw-r--r-- 1 root root     477 Jul 19  2015 zsh_command_not_found
-rw-r--r-- 1 root root     604 Jul  2  2015 deluser.conf
-rw-r--r-- 1 root root    3663 Jun  9  2015 screenrc
-rw-r--r-- 1 root root     703 May  6  2015 logrotate.conf
-rw-r--r-- 1 root root      12 Apr 30  2015 debian_version
-rw-r--r-- 1 root root     771 Mar  6  2015 insserv.conf
drwxr-xr-x 2 root root    4096 Mar  6  2015 insserv.conf.d
-rw-r--r-- 1 root root     338 Nov 18  2014 updatedb.conf
-rw-r--r-- 1 root root     346 Nov  6  2014 discover-modprobe.conf
-rw-r--r-- 1 root root    2932 Oct 25  2014 protocols
-rw-r--r-- 1 root root     887 Oct 25  2014 rpc
-rw-r--r-- 1 root root   19605 Oct 25  2014 services
-rw-r--r-- 1 root root     280 Jun 20  2014 fuse.conf
-rw-r--r-- 1 root root     497 May  4  2014 nsswitch.conf

You need to use the grep command/egrep command to filter out info: A better and recommended solution is the find command:

Что такое NTP?

Для корректной работы каждому виртуальному серверу необходимы часы. Пользователь может узнать время сервера при помощи команды date; кроме того, можно изменить часовой пояс сервера с помощью команды export TZ.

Конечно, встроенные часы необходимы для отслеживания событий на самом сервере, но именно они могут стать причиной определенных сбоев и проблем в случае взаимодействия виртуального сервера с другими машинами. На самом деле, это создает серьезные неудобства: письма, отправленные с сервера, часы которого идут неверно, будут приходить адресату в совсем другое время, а пользователи, имеющие доступ только в определенное время суток, могут быть заблокированы из-за временного рассогласования.

Это можно исправить при помощи NTP – сетевого протокола синхронизации времени, клиенты которого могут запрашивать согласованное текущее время, чтобы использовать его для установки своих собственных часов. Для этого нужно установить на сервер демон ntp – программу, которая будет автоматически корректировать время сервера согласно NTP.

Еще один способ синхронизации времени – утилита ntpdate которая автоматически синхронизирует время на сервере согласованным. Тем не менее, ntpdate не следует применять регулярно, потому что она синхронизирует время виртуального сервера очень быстро, а это может стать причиной «прыжка во времени» и вызвать сбои в чувствительном ко времени программном обеспечении. Потому рекомендуется использовать эту утилиту всего один раз – перед установкой NTP, поскольку NTP может вообще не запуститься, если время сервера сильно отличается от согласованного.

Для корректной работы NTP нужно открыть порт 123.

What is epoch time?

The Unix epoch (or Unix time or POSIX time or Unix timestamp) is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds (in ISO 8601: 1970-01-01T00:00:00Z).
Literally speaking the epoch is Unix time 0 (midnight 1/1/1970), but ‘epoch’ is often used as a synonym for Unix time.
Some systems store epoch dates as a signed 32-bit integer, which might cause problems on January 19, 2038 (known as the Year 2038 problem or Y2038).
The converter on this page converts timestamps in seconds (10-digit), milliseconds (13-digit) and microseconds (16-digit) to readable dates.

Human-readable time  Seconds
1 hour 3600 seconds
1 day 86400 seconds
1 week 604800 seconds
1 month (30.44 days)  2629743 seconds
1 year (365.24 days)   31556926 seconds

Convert from epoch to human-readable date

PHP Output format example: ‘r’ = RFC 2822 date,
Python

Replace time.localtime with time.gmtime for GMT time. Or using datetime:

Ruby
C#
Perl Use the Perl Epoch routines
Java Epoch in seconds, remove ‘*1000’ for milliseconds.
Lua
VBScript/ASP
AutoIT
Delphi Where Epoch is a signed integer.
C Use the C Epoch Converter routines
Objective-C
R
Go
Adobe ColdFusion
MySQL Default output format is YYY-MM-DD HH:MM:SS. If you need support for negative timestamps: (replace -315619200 with epoch) More MySQL
PostgreSQL
SQLite or local timezone:
Oracle PL/SQL Replace 1526357743 with epoch.
SQL Server
IBM Informix
Microsoft Excel / LibreOffice Calc Format the result cell for date/time, the result will be in GMT time (A1 is the cell with the epoch number). For other time zones: =((A1 +/- time zone adjustment) / 86400) + 25569.
Crystal Reports -14400 used for Eastern Standard Time. See Time Zones.
JavaScript Use the
Tcl/Tk
MATLAB
IBM PureData System for Analytics
Unix/Linux Shell Replace 1520000000 with your epoch, needs recent version of ‘date’. Replace ‘-d’ with ‘-ud’ for GMT/UTC time.
Mac OS X
PowerShell , then use: . Works for Windows PowerShell v1 and v2
Other OS’s Command line: (If Perl is installed) Replace ‘localtime’ with ‘gmtime’ for GMT/UTC time.

Thanks to everyone who sent me corrections and updates!

More date related programming examples: What’s the current week number? — What’s the current day number?

Настройка SELinux для web сервера apache

Раздел для тех, кто хочет настроить SELinux на своем web сервере. Сначала ставим пакет policycoreutils-python-utils если он еще не установлен. Он нам нужен для утилиты semanage.

# dnf install policycoreutils-python-utils

Теперь автоматически сформируем модуль для selinux на основе событий аудита, которые накопились, пока мы настраивали сайт. Посмотреть их можно командой.

# grep httpd /var/log/audit/audit.log | audit2why

Создаем модуль selinux.

# grep httpd /var/log/audit/audit.log | audit2allow -M my-httpd

Загружаем его.

# semodule -i my-httpd.pp

То же самое делаем для php.

# grep php /var/log/audit/audit.log | audit2allow -M my-php
# semodule -i my-php.pp

Добавим нашу директорию /web/sites в соответствующие таблицы selinux для контента и логов.

# semanage fcontext -a -t httpd_sys_content_t "/web/sites(/.*)?"
# semanage fcontext -a -t httpd_log_t "/web/sites(/.*)?/log(/.*)?"

И отдельно добавим каталог, куда web сервер сможет писать данные. Я покажу на примере правила для сайтов wordpress, где web сервер должен уметь писать в директорию wp-content для загрузки медиафайлов, установки тем и плагинов, а так же изменять файл wp-config.php.

# semanage fcontext -a -t httpd_sys_rw_content_t "/web/sites/\*/www/wp-content(/.\*)?"
# semanage fcontext -a -t httpd_sys_rw_content_t "/web/sites/\*/www/wp-config.php"

Обновляем атрибуты файлов новым контекстом SELinux.

# restorecon -Rv /web/sites

В завершении настройки selinux для apache, добавим еще один параметр, без которого httpd не сможет писать файлы в указанные каталоги.

# setsebool -P httpd_unified 1

Теперь активируем защиту selinux и проверяем, что она работает.

# setenforce 1
# getenforce
Enforcing

Режим работы Enforcing означает, что selinux работает. Убедиться, что модули загружены, можно командой.

# semodule -l | grep my-

В целом, по selinux все. Мы просто разрешили все, что веб сервер просил. По идее, надо вдумчиво во всех правилах разбираться и разрешать только то, что считаешь нужным. Я честно скажу, что selinux знаю не очень хорошо. Дальше загрузки готовых модулей и автоматического создания модулей с помощью audit2allow я не двигался. Руками модули никогда не писал. Если есть какой-то более осмысленный и правильный способ настройки selinux на кастомной конфигурации веб сервера, буду рад полезной информации.

Хорошая практическая статья по ручной настройке selinux для web сервера — https://habr.com/ru/post/322904/. Там же есть ссылки на другие статьи автора на тему selinux. Написано содержательно и наглядно, рекомендую для тех, кто будет знакомиться с технологией.

2: Настройка NTP-сервера

После установки программы откройте конфигурационный файл:

Найдите в нем раздел, содержащий серверы точного времени pool ntp. Этот раздел выглядит так:

Каждая строка ссылается случайно выбранный сервер, с которым виртуальный сервер может синхронизировать время. Чтобы просмотреть работающие серверы синхронизации времени, используйте команду:

Через некоторое время после установки ntp эта команда покажет что-то вроде:

Серверы pool ntp расположены по всему миру, потому иногда синхронизация и поддержка времени виртуального сервера может быть неидеальной. Чтобы улучшить качество синхронизации, нужно задать ntp континентальную зону (например, europe, north-america, oceania или asia), ограничив таким образом количество подходящих серверов pool ntp. Наиболее оптимальным решением является использование зоны, которая соответствует стране, например:

Внеся в конфигурационный файл всю необходимую информацию, перезапустите ntp:

Готово! Теперь NTP будет проверять время сервера и корректировать его в случае необходимости.

Cloud ServerLinuxNTPUbuntuUbuntu 12.04

Конфигурация

Часовой пояс

Для поддержания правильного исчисления времени необходимо выбрать соответствующий часовой пояс, чтобы системе было известно её текущее местоположение.

OpenRC

Смотрите .

systemd

В systemd существует команда timedatectl для настройки часового пояса:

Проверка текущего часового пояса:

Вывод доступных часовых поясов:

Чтобы изменить часовой пояс, пример для Германии:

Системные часы

Обычно время системных часов устанавливается аппаратными часами во время загрузки системы. Также системные часы возможно установить вручную либо с помощью сервера сетевого времени.

Для изменения системного времени можно воспользоваться командой date:

Вывод текущего времени программных часов:

Установка нового системного времени, например на 6 мая 2016 года в 12:34:

systemd

systemd существует команда timedatectl для управления системным временем:

Вывод текущего времени программных часов:

Установка системного времени:

Аппаратные часы

Чтобы получить доступ к аппаратным часам, нужно собрать ядро со следующими включенными параметрами:

Ядро Необходимые параметры ядра для аппаратных часов

    Device Drivers --->
       Real Time Clock --->
               Set system time from RTC on startup and resume
               Set the RTC time based on NTP synchronization
               /sys/class/rtc/rtcN (sysfs)
               /proc/driver/rtc (procfs for rtc0)
               /dev/rtcN (character devices)
            <*>   PC-style 'CMOS'

Следующая команда выводит текущее на данный момент время аппаратных часов:

Следующая команда устанавливает время аппаратных часов в соответствии с системным временем:

Синхронизация аппаратных часов и системного времени

Обычно аппаратные часы используются при загрузке для установки системного времени. Это может быть осуществлено ядром самостоятельно, либо с помощью загрузочного сервиса init-скрипта при загрузке. Завершение работы ядра или сервиса также может вызвать сохранение времени системных часов в аппаратные часы. Благодаря этому у системы будет правильное время при следующей загрузке.

Синхронизация с помощью ядра

В свежих версиях (3.9 и выше) ядро Linux можно сконфигурировать таким образом, чтобы оно устанавливало системное время автоматически. Чтобы добиться этого, необходимо включить в ядре параметры Set system time from RTC on startup and resume (CONFIG_RTC_HCTOSYS) и Set the RTC time based on NTP synchronization (CONFIG_RTC_SYSTOHC):

Ядро Синхронизация системного времени с помощью ядра

    Device Drivers --->
       Real Time Clock --->
               Set system time from RTC on startup and resume
            (rtc0)  RTC used to set the system time
               Set the RTC time based on NTP synchronization
            (rtc0)  RTC used to synchronize NTP adjustment
               /sys/class/rtc/rtcN (sysfs)
               /proc/driver/rtc (procfs for rtc0)
               /dev/rtcN (character devices)
            <*>   PC-style 'CMOS'

Параметр ядра Set the RTC time based on NTP synchronization на данный момент поддерживается chrony, NTP и OpenNTPD начиная с версии 5.9p1.

Выведенное число 64 бит должно быть не задано (0). Более подробная информация в man-странице hwclock (ищите ’11 minute mode’).

OpenRC

При использовании OpenRC для установки системного времени во время загрузки и синхронизации аппаратных часов во время завершения работы можно воспользоваться init-скриптом hwclock. Данная сервис включен по умолчанию и должен быть отключен при использовании вышеуказанного способа синхронизации ядром. Скрипт hwclock не следует запускать при использовании часов реального времени ядра.

Однако, если необходимо синхронизировать время с помощью OpenRC, в файле /etc/conf.d/hwclock для <va>clock_hctosys и clock_systohc следует установить значение в . По умолчанию сервис настроена на стандарт UTC. Чтобы изменить это на использование стандарта местного времени (localtime) необходимо добавить .

Файл Синхронизация аппаратных часов

clock_hctosys="YES" 
clock_systohc="YES"
# clock="local"

Перезапустите сервис hwclock и добавьте его init-скрипт в уровень запуска boot:

systemd

Для установки системного времени во время загрузки можно использовать systemd. Для управления аппаратными часами используйте команду timedatectl:

Вывод текущего времени аппаратных часов:

Следующая команда устанавливает аппаратные часы в соответствии с системным временем (в стандарте времени UTC):

Следующая команда устанавливает аппаратные часы в соответствии с системным временем в стандарте времени localtime (местное время):

Целочисленное представление

Unix-время представлено целым числом, которое увеличивается с каждой прошедшей секундой без необходимости вычислений для определения года, месяца, дня, часа или минуты для удобства восприятия человеком. Современное Unix-время согласуется с UTC — отсчет происходит в секундах СИ. Временной промежуток одного дня почти всегда разбит на 86 400 секунд, но при объявлении дополнительных секунд составляет 86 401 секунду. Такие секунды, согласно Всемирному времени, сохраняют длительность дней синхронизированной со временем оборота планеты. В Unix-времени соответствующие номера секунд повторяются, то есть високосные секунды не учитываются.

В момент времени 00:00:00 UTC 1 января 1970 года (четверг) Unix-время равно нулю. Начиная с этого времени, число возрастает на определённое количество в день. Таким образом, к примеру, 16 сентября 2004 года в 00:00:00, спустя 12677 дней после начала отсчета Unix-времени, время будет представлено числом 12 677 × 86 400 = 1 095 292 800, или в случае с 17 декабря 2003 года в 00:00:00, через 12403 дня после начала отсчёта время будет являться числом 12403 × 86 400 = 1 071 619 200. Расчеты могут быть также произведены в обратном направлении, используя отрицательные числа. К примеру, дата 4 октября 1957 года 00:00:00, а это 4472 дня до начала отсчета, представлена в Unix-времени числом −4472 × 86 400 = −386 380 800.

Каждый день число, представляющее Unix-время, вычисляется описанным образом в UTC (00:00:00Z), и увеличивается ровно на 1 в секунду, начиная с полночи. Следовательно, момент времени 16-09-2004 17:55:43,54, соответствующий 64 543,54 секунды от полуночи этой даты, из примера выше, будет представлен в Unix-времени числом 1 095 292 800 + 64 543,54 = 1 095 357 343,54. Для дат, предшествующих началу отсчета, число также возрастает, то есть с течением времени приближается к нулю.

Используемую целочисленную систему удобно использовать для сравнения и хранения дат (дата и время в этом формате занимают всего 4 или 8 байт). При необходимости обращения к элементам дат (день, месяц, год) секунды можно преобразовать в любой подходящий формат (и наоборот).

В программах для хранения Unix-времени используется . 32-битные числа со знаком могут ссылаться на моменты времени от пятницы 13 декабря 1901 года 20:45:52 до вторника 19 января 2038 года 03:14:07 включительно.

Чтобы узнать текущее Unix-время в большинстве Unix-подобных систем, можно использовать команду date +%s.

UNIX Date Command Examples and Syntax

The syntax is:

date 
date "+format"

Display Current Date and Time

Type the following command:

date

Sample outputs:

Tue Oct 27 15:35:08 CDT 2009

When executed without arguments, the date command shows the current date and time.

Set The Current Time

You must run command as root user. To set the current time to 05:30:30, enter:

date 0530.30

Warning: Please don’t change the Unix date and time when the server is running with more than one user (multi-user mode) or critical services, as it may result in unexpected behaviors.

Set Date

The syntax is as follows:

Set the date to Oct 25, 12:45 a.m., enter:

date 10250045

Again you must run command as root user. In this example, set the current date and time to Oct 15, 2009 04:30 you type:

date --set="20091015 04:30"

Generating Output

WARNING! These examples may not work on Linux computer running GNU/coreutiles date command. All examples are tested on HP-UX, AIX, Sun Solaris and other proprietary UNIX operating systems only.

Type the following command:

date '+DATE: %m/%d/%y%nTIME:%H:%M:%S'

Sample outputs:

DATE: 10/27/09
TIME:15:50:44

Try the following examples:

date "+%m/%d/%y" 
date "+%Y%m%d"
date +'%-4.4h %2.1d %H:%M'

Understanding date format strings

From the date command man page:

  • %a – Displays the locale’s abbreviated weekday name.
  • %A – Displays the locale’s full weekday name.
  • %b – Displays the locale’s abbreviated month name.
  • %B – Displays the locale’s full month name.
  • %c – Displays the locale’s appropriate date and time representation (default).
  • %C – Displays the first 2 digits of the four-digit year as a decimal number (00-99). A year is divided by 100 and truncated to an integer.
  • %d – Displays the day of the month as a decimal number (01-31). In a two-digit field, a 0 is used as leading space fill.
  • %D – Displays the date in the format equivalent to %m/%d/%y.
  • %e – Displays the day of the month as a decimal number (1-31). In a two-digit field, a blank space is used as leading space fill.
  • %h – Displays the locale’s abbreviated month name (a synonym for %b).
  • %H – Displays the hour (24-hour clock) as a decimal number (00-23).
  • %I – Displays the hour (12-hour clock) as a decimal number (01-12).
  • %j – Displays the day of year as a decimal number (001-366).
  • %k – Displays the 24-hour-clock hour clock as a right-align, space-filled number (0 – 23).
  • %m – Displays the month of year as a decimal number (01-12).
  • %M – Displays the minutes as a decimal number (00-59).
  • %p – Displays the locale’s equivalent of either AM or PM.
  • %r – Displays 12-hour clock time (01-12) using the AM-PM notation; in the POSIX locale, it is equivalent to %I:%M:%S %p.
  • %S – Displays the seconds as a decimal number (00 – 59).
  • %T – Displays the 24-hour clock (00-23) in the format equivalent to HH:MM:SS.
  • %w – Displays the weekday as a decimal number in the range 0-6 (Sunday = 0). Refer to the %u field descriptor.

Тестирование

Проверить состояние получения эталонного времени можно командой:

ntpq -p

Мы должны увидеть, примерно, следующее:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ru.pool.ntp.org .POOL.          16 p    —   64    0    0.000    0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    —   64    0    0.000    0.000   0.000
*91.189.94.4     17.253.34.253    2 u   58   64  377   55.802    3.790   0.412
-91.189.91.157   132.246.11.231   2 u   56   64  377  113.456   -1.746   0.334
+91.189.89.198   192.53.103.108   2 u    1   64  377   54.595    4.229   0.608
+91.189.89.199   17.253.34.253    2 u   61   64  377   54.061    2.637   0.557

* где:

  • remote — адрес сервера времени, с которым синхронизируется наш сервер;
  • refid — вышестоящий сервер (с которым сервер из графы выше получает время);
  • st — уровень сервера (stratum);
  • t — пир (unicast или multicast);
  • when — когда последний раз сверялось время;
  • poll — периодичность синхронизации с этим сервером;
  • reach — состояние работоспособности. Если удалось произвести синхронизации восемь раз в подряд становится равным 377;
  • delay — время задержки;
  • offset — разница между нашим временем и временем на сервере; положительное — наши часы спешат, отрицательное — отстают;
  • jitter — смещение времени на удаленном сервере;
  • * — с этим сервером синхронизирует время наш ntpd;
  • + — сервер можно использовать для сверки часов;
  • — — не рекомендован для синхронизации;
  • x — не доступен.

Проверить отдачу времени сервером можно введя команду на другом Linux:

ntpdate 192.168.0.15

Правильный ответ имеет следующий вид:

ntpdate: adjust time server 192.168.0.15 offset 0.017657 sec

* время было рассинхронизировано на 0.017657 секунд.

Отобразить текущее время можно командой:

date

Если после синхронизации время некорректно, настраиваем правильный часовой пояс:

cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* московское время (GMT+3).

DESCRIPTION

Display the current time in the given FORMAT, or set the system date.

-d, —date=STRING
display time described by STRING, not `now’
-f, —file=DATEFILE
like —date once for each line of DATEFILE
-r, —reference=FILE
display the last modification time of FILE
-R, —rfc-2822
output date and time in RFC 2822 format. Example: Mon, 07 Aug 2006 12:34:56 -0600
—rfc-3339=TIMESPEC
output date and time in RFC 3339 format. TIMESPEC=`date’, `seconds’, or `ns’ for date and time to the indicated precision. Date and time components are separated by a single space: 2006-08-07 12:34:56-06:00
-s, —set=STRING
set time described by STRING
-u, —utc, —universal
print or set Coordinated Universal Time
—help
display this help and exit
—version
output version information and exit

FORMAT controls the output. Interpreted sequences are:

%%
a literal %
%a
locale’s abbreviated weekday name (e.g., Sun)
%A
locale’s full weekday name (e.g., Sunday)
%b
locale’s abbreviated month name (e.g., Jan)
%B
locale’s full month name (e.g., January)
%c
locale’s date and time (e.g., Thu Mar 3 23:05:25 2005)
%C
century; like %Y, except omit last two digits (e.g., 20)
%d
day of month (e.g., 01)
%D
date; same as %m/%d/%y
%e
day of month, space padded; same as %_d
%F
full date; same as %Y-%m-%d
%g
last two digits of year of ISO week number (see %G)
%G
year of ISO week number (see %V); normally useful only with %V
%h
same as %b
%H
hour (00..23)
%I
hour (01..12)
%j
day of year (001..366)
%k
hour, space padded ( 0..23); same as %_H
%l
hour, space padded ( 1..12); same as %_I
%m
month (01..12)
%M
minute (00..59)
%n
a newline
%N
nanoseconds (000000000..999999999)
%p
locale’s equivalent of either AM or PM; blank if not known
%P
like %p, but lower case
%r
locale’s 12-hour clock time (e.g., 11:11:04 PM)
%R
24-hour hour and minute; same as %H:%M
%s
seconds since 1970-01-01 00:00:00 UTC
%S
second (00..60)
%t
a tab
%T
time; same as %H:%M:%S
%u
day of week (1..7); 1 is Monday
%U
week number of year, with Sunday as first day of week (00..53)
%V
ISO week number, with Monday as first day of week (01..53)
%w
day of week (0..6); 0 is Sunday
%W
week number of year, with Monday as first day of week (00..53)
%x
locale’s date representation (e.g., 12/31/99)
%X
locale’s time representation (e.g., 23:13:48)
%y
last two digits of year (00..99)
%Y
year
%z
+hhmm numeric time zone (e.g., -0400)
%:z
+hh:mm numeric time zone (e.g., -04:00)
%::z
+hh:mm:ss numeric time zone (e.g., -04:00:00)
%:::z
numeric time zone with : to necessary precision (e.g., -04, +05:30)
%Z
alphabetic time zone abbreviation (e.g., EDT)

By default, date pads numeric fields with zeroes. The following optional flags may follow `%’:

(hyphen) do not pad the field
_
(underscore) pad with spaces
(zero) pad with zeros
^
use upper case if possible
#
use opposite case if possible

After any flags comes an optional field width, as a decimal number; then an optional modifier, which is either E to use the locale’s alternate representations if available, or O to use the locale’s alternate numeric symbols if available.

Распространённые ошибки при настройке времени в CentOS

В данном разделе, я опишу частые ошибки, которые возникают при работе с утилитами timedatectl, ntp.

При ручной синхронизации времени, у вас может возникнуть подобная ошибка:

ntpdate : the NTP socket is in use, exiting

Она означает, что у вас запущен демон ntpd, который блокирует ручную синхронизация времени. Чтобы выполнить ручную синхронизацию, остановите демон ntpd:

И запустите синхронизацию заново:

Аналогичная ошибка может возникать и при работе с утилитой timedatectl:

Failed to set time: Automatic time synchronization is enabled.

Теперь нужно отключить автоматическую синхронизацию в самой утилите timedatectl:

И выполнить команду по установке конкретного времени:

При работе с часовыми поясами, они могут быть не установлены у вас на сервере и создать симлинк для localtime не получится. Для того, чтобы в системе были доступны часовые пояса, установите утилиту tzdata:

Так при ручной синхронизации, часто бывают ошибки вида:

28 Nov 10:12:39 ntpdate: sendto(185.217.191.98): Operation not permitted

В этом случае проверьте правила firewalld / iptables, и убедитесь, что у вас на сервере открыт UDP порт 123. Так же некоторые хосты синхронизации могут быть недоступны в момент проверки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector