パラメータを受け入れてスクリプトで使用するシェルスクリプトがあります。だから私が入力したスクリプトを実行するには
/path/to/script argument
at
問題は、ユーティリティで実行するようにファイルを設定しようとしたときに発生します。頑張りました
at -f /path/to/script argument 17:45
at -f '/path/to/script argument' 17:45
ただし、これらのオプションのいずれも機能しません。 1つ目は構文エラーが発生し、2つ目はそのファイルがないと言います。
答え1
at
デフォルトは標準入力から読み取るものなので、次のようにできます。
echo /path/to/script argument | at 17:45
答え2
通常@warl0ckのアドバイスに従うことをお勧めします。次の新しいスクリプトを作成します/path/to/newscript
。
#!/bin/bash
/path/to/script argument
次に、次のように実行しますat
。
at -f /path/to/newscript 17:45
これにより、必要なパラメータを簡単に調整し、複数のコマンドを実行できます。
あるいは、時折または使い捨てのためにat
選択した時間にのみ実行してから、標準入力に必要なコマンドを入力することもできますctrl-D
。
myhost# at 17:45
/path/to/script argument
<ctrl-D>
Job 1 will be executed using /bin/sh
答え3
私もこの問題を経験し、EOFで解決しました。
リモートサーバー(sshserverhost)のパラメータ実行への接続を開始しますssh
。sshserverhost
test.sh
$HOSTNAME
at now + 1 minutes <<EOF
ssh -t sshserverhost 'bash -s' <~/test.sh $HOSTNAME
EOF