cronジョブを使用してサーバーからファイルをダウンロードしたいので、キーワードを介してパスワードを入力せずにscp
コマンドを使用する必要があります。
どうすればいいですか?
答え1
最初のステップは、コピーされたコンピュータに秘密鍵と秘密鍵のペアを作成することです。
ssh-keygen
デフォルト値をそのまま使用してください。パスワードは入力しなくても使用できます。時間がかかる場合があります。
2 番目のステップでは、鍵の生成が完了した後、次のコマンドを使用して公開鍵をサーバーにコピーします。
ssh-copy-id username@server
適切なusername
パスワードserver
を使用するにはパスワードが必要ですusername
。パスワードがない場合は、username
ルートアカウントを介して公開鍵を含むファイルをコピーすることができますが、そのアカウントのパスワードを一時的に作成して使用する方がはるかに簡単です。ssh-copy-id
ステップ3:次のコマンドを使用して、インストールされた公開鍵が有効であることをテストします。ssh username@server
またはscp somefile username@server:/var/tmp
ステップ4:crontab -e
クライアントコンピュータにcron job()を追加します。
15 23 * * * scp username@server:/path/on/server/downloadfile /local/destination
17 23 * * * scp /local/source/somefile username@server:/path/on/server/uploaddirectory
/path/on/server/downloadfile
毎晩11:15にサーバーからファイルをコピーし、2分後にアップロードを開始します。/local/source/somefile
考慮すべき事項:
- コピーしているクライアントシステムへのアクセスセキュリティと保護されていない秘密鍵がある場所に応じて、アカウントを許可および許可しないように
username
アカウントscp
を変更することを検討する必要がありますssh
。 - 同じファイルをコピーして内容がほとんど変更された場合(たとえば、完全に書き換えるのではなく追加)、
rsync
上記のSSHキーペアを使用する方が効率的です。