各リポジトリをローカルミラーにインポートするために異なるdnf / yumリポジトリをrsyncするいくつかのbashスクリプト(デフォルトではお互いのすべてのレプリカ)があります。手動で(ルートとして)実行すると、スクリプトが正しく実行されます。
systemdデバイス/サービスファイル(下)と対応するタイマーファイルもあります。タイマーが実行され、サービスが実行されている限り、これらすべてがうまく機能します。ただし、サービスが実行されていると(タイマーを介してまたはルートとして手動で)、次のエラーが発生します(スクリプトの1つのログ - 各スクリプトは同じエラーを報告します)。
誰が私がどこに間違っているのか教えてもらえますか?ありがとうございます。
ユニットファイル
[Unit]
Description=Sync the local DNF mirror server with upstream repo servers
Wants=network-online.target
After=multi-user.target
[Service]
Type=oneshot
User=root
ExecStart=/etc/rsync.d/sync_ceph_repos.sh
ExecStart=/etc/rsync.d/sync_elrepo_repos.sh
ExecStart=/etc/rsync.d/sync_epel_repos.sh
ExecStart=/etc/rsync.d/sync_gf_repos.sh
ExecStart=/etc/rsync.d/sync_nginx_repos.sh
ExecStart=/etc/rsync.d/sync_remi_repos.sh
ExecStart=/etc/rsync.d/sync_rocky_repos.sh
[Install]
WantedBy=multi-user.target
ログのエラーメッセージ
rsync: [Receiver] failed to connect to mirror.digitalpacific.com.au (101.0.120.90): Permission denied (13)
rsync error: error in socket IO (code 10) at clientserver.c(138) [Receiver=3.2.3]
rsync: [Receiver] failed to connect to mirror.digitalpacific.com.au (101.0.120.90): Permission denied (13)
rsync error: error in socket IO (code 10) at clientserver.c(138) [Receiver=3.2.3]
答え1
あなたのサービスがSync.serviceであるとします。 ausearch -c 'Sync' --raw audit2allow -M my-Sync semodule-i my-Sync.pp
その後、「systemctl start Sync.service」をもう一度実行してみてください。失敗した場合はすすぎ、繰り返します。 SElinuxシステムで権限の変更を繰り返しています。誰かがより良い答えを持っていることを願っています。