CronからBashスクリプト、Bashスクリプト、Expectスクリプト
一連のExpectスクリプトを実行したい。実行のチェーンは次のようになります。Cronジョブはbashスクリプトを開始し、このラッパーは〜11個のbashスクリプトを開始Parallelします-それぞれがスクリプトを呼び出しExpectます。 そのExpect部分まではすべて順調です。2番目のBashスクリプトにParallel部分があり、各期待スクリプトのホスト名をファイルに出力しています。実際、doはグループで表示されますが、Expectスクリプトはすぐに終了します。 Cronジョブの性質上、環境変数をジョブに渡す必要があると聞きました。私はこれまでこれを試しました: 48 9 * * * rm /home/admin/.flag && /home/admin/.profile; /home/admin/nodeTest.sh nodeTestの重要なコードは次のとおりです。 for i in {1..10}; do for chunk in `ls /home/admin/assets/sagLogs/x*`; do cat $chunk | parallel -j 11 -I% --max-args 1 /home/abdmin/oneNode.sh "%" clear done done チャンクの長さは11ホスト名です。それらはoneNodeを介してExpectスクリプトを開始するために並列プログラムに入ります-oneNodeはホスト名をIPに変換し、実行するスクリプトを決定します。 これはコマンドラインからうまく機能します。悲しみを与えてくれるだけのCronの仕事。interacttclコマンドが問題を引き起こすことを読みましたが、スクリプトでは使用していません。これは並行して実行される行です: timeout 80 sudo expect /home/admin/assets/activeTest $sag $ip & 更新:前の行を次のように変更しました: …