rsync
起動時にエントリを介してリモートサーバーからローカルコンピュータにファイルを送信しようとしますcrontab
。私のrsync
スクリプトはresolv.conf
DHCPプロセスが設定され開始されるのを待ちます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]
問題をよりよく理解するために、いくつかの修正を試しました。
- お客様だから今私はローカルネットワークでmDNSをサポートするローカルネットワークに切り替えて
[server-name.local]
スクリプトを起動しました。これは期待どおりに機能します。 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]
繁栄。問題が解決しました。