rsync は cron で起動した場合にのみ失敗します。

rsync は cron で起動した場合にのみ失敗します。

rsync起動時にエントリを介してリモートサーバーからローカルコンピュータにファイルを送信しようとしますcrontab。私のrsyncスクリプトはresolv.confDHCPプロセスが設定され開始されるのを待ちますrsync。残念ながら、起動時にスクリプトが実行されると、rsync次のエラーで失敗します。

2019/09/05 12:37:22 [392] rsync: getaddrinfo: [server-name.domain.tld] 873: Name or service not known
2019/09/05 12:37:22 [392] rsync error: error in socket IO (code 10) at clientserver.c(125) [Receiver=3.1.2] 

問題をよりよく理解するために、いくつかの修正を試しました。

  1. お客様だから私はローカルネットワークでmDNSをサポートするローカルネットワークに切り替えて[server-name.local]スクリプトを起動しました。これは期待どおりに機能します。
  2. rsync次に、クライアントが完全に起動した後に手動でコマンドを実行してみました。スクリプトのコマンドは変更されていません[server-name.domain.tld]
rsync -avy  --log-file=$script_path/$logfile --password-file $script_path/$password_file --contimeout=30  --exclude 'sample' rsync://$rsync_username@$rsync_server/$rsync_path/ $dest_path/

だから私は起動プロセス中に私が見落としていることが名前解決を管理できるかどうか疑問に思います。

関連があれば、ここに私の顧客の情報があります。/etc/nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat
gshadow:        files

hosts:          files mdns4_minimal dns [NOTFOUND=return]

networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

ベストアンサー1

同様の質問に対する答えを見つけました。結果:名前解決に時間がかかりすぎます。そのため、スクリプトの前に応答がキャッシュされるようにrsync追加しました。dig [server.domain.tld]繁栄。問題が解決しました。

おすすめ記事