これはハイデラバードのSrikanthです。シェルスクリプトを完全に実行していないCronjob
私は法人会社のLinux管理者です。私たちはイカサーバを持っていますので、私はバックアップイカサーバを用意しました。ライブイカサーバがダウンすると、バックアップサーバをLIVEに置くことができます。
私のsquidサーバーは、Centos 5.5で構成されています。私は/ etc/squid/liveサーバーのすべての構成ファイルをバックアップサーバーにバックアップするスクリプトを用意しました。
ディレクトリ/ opt/permission 755(rwxr-xr-x)にsquidbackup.shとして保存されたスクリプトは次のとおりです。
#! /bin/sh
username="<username>"
password="<password>"
host="Server IP"
expect -c "
spawn /usr/bin/scp -r <username>@Server IP:/etc/squid /etc/
expect {
"*password:*"{
send $password\r;
interact;
}
eof{
exit
}
}
**これは、スクリプトに記載されているユーザーを確認するバックアップサーバーで実行されます。ライブサーバーでユーザーを作成し、スクリプトで同じユーザーを指定しました。
私はすべてが今まで正常に動作します
[[email protected] ~]# sh /opt/squidbackup.sh
以下のコマンドを使用してこのコマンドを実行すると、このスクリプトは、場所の/ etc /イカのLIVEサーバーのの/ etc /イカ/ディレクトリからすべてのファイルをダウンロード私は
50 23 * * * sh /opt/squidbackup.sh
いけない間違っているのか知っている以下のような、または他のタイミングでcrontabでこれを設定した場合/ Backupサーバの
さて問題は、発生させ、それがn個でありますすべてのファイルをダウンロードしてください。つまり、CronjobはLIVEサーバーの/ etc/squid /からバックアップサーバーの/ etc/squid /に少数のファイルしかダウンロードしていません。
**このスクリプトを手動で実行すると、すべてのファイルが完全にダウンロードされてエラーや警告が出力されます。
ご質問がある場合は、先に進んで投稿してください。
解決策があれば教えてください。
お願いします。ありがとうございます。
ご協力いただきありがとうございます。私はあなたが言ったことを試しました、それは下のように表示されますが、以前私はイカのバックアップサーバーのユーザーのメールに同じ出力を取得するために使用します。
でも、cronログでも同じことが表示されますが、以下の行から正確なエラーは何か分かりませんでした。
cronでダウンロードするファイルはごくわずかです。
spawn /usr/bin/scp -r <username>@ServerIP:/etc/squid /etc/
<username>@ServerIP's password:
他に何か提案できるかどうかを確認してください。
cronジョブからのメールは、何と言っていますか? – Flexo
ユーザ名とパスワードは、大文字で読みやすく、大文字で表示されます。それは本当に悪い考えです。パスワードなしのsshを設定する必要があります。スクリプトを実行するアカウントの '$ HOME/.ssh'ディレクトリに公開鍵と秘密鍵を作成し、リモートシステムに' $ HOME/.ssh/authorized_keys'を設定してください。パスフレーズのない秘密鍵を設定するのが最も簡単です。つまり、秘密鍵ファイル*を安全に保つ必要があります。 (秘密鍵をパスフレーズで設定し、cronジョブで 'ssh-agent'を使用させることは可能ですが、それはちょっと複雑になります)。 –