0

cronjob でスクリプトを実行しています。しかし、そのスクリプトはユーザー入力を受け取ります。

このような場合はどうすればよいのでしょうか?

4

4 に答える 4

3

標準入力から入力を取得している場合は、パイプまたはリダイレクトを使用してスクリプトを呼び出す別のスクリプトを作成します。

#!/bin/sh
/foo/bar/my_command < my_input

crontab でシェル コマンドとして起動することもできます。

0 * * * * /bin/sh -c "/foo/bar/my_command < my_input"
于 2013-11-08T10:17:18.450 に答える
1
  1. ユーザー入力が不要になるようにスクリプトを変更します。

  2. を介して、ファイルから必要な入力をスクリプトに供給します<

「予期されるユーザー入力」が万が一パスワードである場合に備えて、オプション 2 を使用しないでください。アクセス認証を crontab ジョブに編集することは、さまざまな種類の危険です。

PS: mvp expect. これは基本的に、ポストイットにパスワードを書き留めてモニターに貼り付けるのと同じです。簡単で便利ですが、安全ではありません。

于 2013-11-08T10:17:54.953 に答える
0

expectを使用して、スクリプトへの手動ユーザー入力をシミュレートできます。これは、スクリプトがリダイレクトを受け入れない場合でも機能します (パスワードを入力する必要がある場合は可能です)。

実際には、Perl Expectはより簡単にスクリプトを記述できることがわかりましたexpect

于 2013-11-08T10:17:37.383 に答える