CentOS 7 timedatectl не работает должным образом с chronyd

Когда вы ссылаетесь на переменную без кавычек (например, echo $ files ), оболочка разделяет значение на пробелы и передает каждый термин как отдельный параметр командной строки. Новые строки обрабатываются так же, как и любые другие пробелы. Программа echo вообще не видит символы новой строки; он просто получает массив строк, каждая из которых представляет собой одно имя файла.

Когда вы ссылаетесь на переменную в кавычках (например, echo "$ files" ), оболочка не выполняет разделения на пробелы; вместо этого он передает все значение без изменений как единственный аргумент. Программа echo получает одну длинную строку, содержащую символы новой строки.

Если оставить в стороне переменные, это то же поведение, что и при кавычках буквальных значений. Если вы напишете echo foo bar , пробелы удаляются оболочкой, а echo просто получает строки foo и bar , и он напечатает эти строки с одним пробелом между ними, так как он закодирован для объединения нескольких аргументов. Если вы напишете echo "foo bar" , echo получит единственную строку foo bar и распечатает ее как есть.

1
28.03.2018, 11:04
2 ответа

timedatectlработает только с собственным демоном NTP systemd (systemd-timesyncd), если вы используете другой демон NTP, вы должны использовать поставляемые им инструменты (chronyc, ntpq,....)

На вашем компьютере определенно не должно быть одновременно запущено несколько демонов NTP.

0
27.01.2020, 23:43

timedatectl работает с любым клиентом ntp (, например chrony ). systemd поддерживает systemd -timesyncd из v213, но в последней версии CentOS 7 (я сейчас на 7.7.1908 )они решили отключить его.

Если вы хотите использовать клиент ntp вместо timedatectl, я бы предложил использовать cron. @daily должен справиться с этой задачей.

напр.

@daily /usr/sbin/ntpdate -u gr.pool.ntp.org

Но вы всегда можете установить chrony и просто установить для ntp true значение timedatectl

# timedatectl set-ntp true 
Failed to set ntp: NTP not supported

# yum -y install chrony

# timedatectl set-ntp true

# timedatectl | grep NTP                                 
     NTP enabled: yes          
NTP synchronized: no

и если вы включите службу chrony, то вы увидите, что timedatectl также синхронизировал NTP

# systemctl enable chronyd
# systemctl start chronyd

# timedatectl | grep -i ntp
     NTP enabled: yes
NTP synchronized: yes
2
27.01.2020, 23:43

Теги

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