Назад | Перейти на главную страницу

Установите rsync 3.1.1 на systemd

У меня CentOS 7, и он поставляется с Rsync 3.0.9. Я загрузил 3.1.1 el7 rpm и установил его с помощью rpm -Uvh.

Теперь демон отказывается запускаться. Я пытался создать:

/usr/lib/systemd/system/rsyncd.service

[Unit]
Description=A program for synchronizing files over a network
After=syslog.target network.target
ConditionPathExists=/etc/rsyncd.conf

[Service]
EnvironmentFile=-/etc/sysconfig/rsyncd
ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS"

[Install]
WantedBy=multi-user.target

Не повезло :

/bin/systemctl status  rsyncd.service
● rsyncd.service
   Loaded: not-found (Reason: No such file or directory)
   Active: failed (Result: exit-code) since Thu 2016-04-21 15:27:00 EDT; 56min ago
 Main PID: 1452 (code=exited, status=20)

Обратите внимание, что упомянутый файл в конфигурации существует:

-rw-r--r-- 1 root root 1699 Feb  4 14:27 /etc/rsyncd.conf
-rw-r--r-- 1 root root 11 Apr 21 16:09 /etc/sysconfig/rsyncd

У меня под Fedora 22 стоит 3.1.1.

Необходимые файлы конфигурации для rsyncd находятся в rsync-daemon пакет. Я перечислил файлы в каждом пакете ниже.

Я бы просто установил дополнительный пакет.

Но я заметил опечатку в вашем файле конфигурации ...

Изменить:

EnvironmentFile=-/etc/sysconfig/rsyncd

В:

EnvironmentFile=/etc/sysconfig/rsyncd

Вот список файлов в rsync пакет:

/usr/bin/rsync
/usr/share/doc/rsync
/usr/share/doc/rsync/NEWS
/usr/share/doc/rsync/OLDNEWS
/usr/share/doc/rsync/README
/usr/share/doc/rsync/support
/usr/share/doc/rsync/support/Makefile
/usr/share/doc/rsync/support/atomic-rsync
/usr/share/doc/rsync/support/cvs2includes
/usr/share/doc/rsync/support/deny-rsync
/usr/share/doc/rsync/support/file-attr-restore
/usr/share/doc/rsync/support/files-to-excludes
/usr/share/doc/rsync/support/git-set-file-times
/usr/share/doc/rsync/support/instant-rsyncd
/usr/share/doc/rsync/support/logfilter
/usr/share/doc/rsync/support/lsh
/usr/share/doc/rsync/support/lsh.sh
/usr/share/doc/rsync/support/mapfrom
/usr/share/doc/rsync/support/mapto
/usr/share/doc/rsync/support/mnt-excl
/usr/share/doc/rsync/support/munge-symlinks
/usr/share/doc/rsync/support/rrsync
/usr/share/doc/rsync/support/rsync-no-vanished
/usr/share/doc/rsync/support/rsync-slash-strip
/usr/share/doc/rsync/support/rsyncstats
/usr/share/doc/rsync/support/savetransfer.c
/usr/share/doc/rsync/tech_report.tex
/usr/share/licenses/rsync
/usr/share/licenses/rsync/COPYING
/usr/share/man/man1/rsync.1.gz

Вот список файлов в rsync-daemon пакет:

/etc/rsyncd.conf
/etc/sysconfig/rsyncd
/usr/lib/systemd/system/rsyncd.service
/usr/lib/systemd/system/rsyncd.socket
/usr/lib/systemd/system/rsyncd@.service
/usr/share/man/man5/rsyncd.conf.5.gz

ОБНОВИТЬ:

Я попытался принудительно установить rsync-daemon на моем Centos 7, учитывая, что это всего лишь текстовый файл, я рискнул и проигнорировал зависимость.

Я не уверен, о какой зависимости вы имеете в виду, но я посмотрел на .spec файл и список systemd-units, но я не могу найти для этого обороты.

Не повезло.

Не совсем понимаю, что это значит. Файлы были извлечены / установлены или нет? Ты можешь сделать ls -l на них? В крайнем случае, вы пытались rpm --nodeps --force?

Учитывая .rpm файл, можно вручную извлечь файлы, используя rpm2cpio [должен быть частью уже установленного rpm package] и либо cpio или pax [что очень похоже на tar, но понимает обе tar и cpio форматировать архивы].

Обычно мне больше везло с использованием pax. Он имеет свой собственный rpm [для установки: yum install pax]. На самом деле я никогда не получал rpm2cpio/cpio комбинация для правильной работы для извлечения.

Чтобы просмотреть файл rpm, используя pax:

rpm2cpio rpmfile | pax -v

Чтобы извлечь файл rpm, используя pax:

rpm2cpio rpmfile | pax -v -r

Я тоже пытался извлечь файл напрямую, но он все равно отказывается запускаться.

Возможно, вам придется просмотреть некоторые файлы журналов, например /var/log/messages, /var/log/audit/audit.log, /var/log/secure, и, возможно, придется использовать journalctl программа для просмотра журнала systemd.

У вас могут быть [глупые] selinux ограничение безопасности, которое необходимо исправить. Возможно, вам придется бежать restorecon в файлах конфигурации.

Кроме того, вам, возможно, придется добавить что-то в /etc файлы, как это может быть rsync сам по себе, который не хочет запускаться (vs. systemd не запускается rsync).

Ниже приводится содержание rsync-daemon файлы, Кроме для файла справочной страницы [который слишком велик, чтобы включать его здесь]. Файл справочной страницы можно найти здесь: http://linux.die.net/man/5/rsyncd.conf


/etc/rsyncd.conf

# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# configuration example:

# uid = nobody
# gid = nobody
# use chroot = yes
# max connections = 4
# pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

# [ftp]
#        path = /home/ftp
#        comment = ftp export area

/ и т.д. / sysconfig / rsyncd

OPTIONS=""

/usr/lib/systemd/system/rsyncd.service

[Unit]
Description=fast remote file copy program daemon
ConditionPathExists=/etc/rsyncd.conf

[Service]
EnvironmentFile=/etc/sysconfig/rsyncd
ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS"

[Install]
WantedBy=multi-user.target

/usr/lib/systemd/system/rsyncd@.service

[Unit]
Description=fast remote file copy program daemon
ConditionPathExists=/etc/rsyncd.conf

[Service]
EnvironmentFile=/etc/sysconfig/rsyncd
ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS"
StandardInput=socket

/usr/lib/systemd/system/rsyncd.socket

[Unit]
Description=Rsync Server Socket
Conflicts=rsyncd.service

[Socket]
ListenStream=873
Accept=yes

[Install]
WantedBy=sockets.target

я узнал что systemctl daemon-reload требуется для загрузки службы. После этого все сразу заработало.