Como at
é o padrão de leitura da entrada padrão, você pode fazer isso:
echo /path/to/script argument | at 17:45
Eu tenho um script de shell que aceita um argumento e usa isso no script. Então, para executar o script, eu digito
/path/to/script argument
O problema é ao tentar configurar esse arquivo para ser executado usando o utilitário at
. Eu tentei
at -f /path/to/script argument 17:45
at -f '/path/to/script argument' 17:45
mas nenhuma dessas opções funciona. Primeiro um recebe um erro de sintaxe e o segundo diz que não há tal arquivo Alguma sugestão?
Eu recomendaria seguir o conselho de @ warl0ck no caso geral - criar um novo script, por exemplo /path/to/newscript
:
#!/bin/bash
/path/to/script argument
e depois executá-lo usando at
:
at -f /path/to/newscript 17:45
Isso facilita ajustar quaisquer argumentos necessários, executar vários comandos, etc.
Como alternativa, para uso ocasional ou único, você pode executar at
com o tempo escolhido e, em seguida, digitar o (s) comando (s) necessário (s) na entrada padrão; % hit% co_de to end:
myhost# at 17:45
/path/to/script argument
<ctrl-D>
Job 1 will be executed using /bin/sh
Eu também tive esse problema e resolvi usando o EOF.
Isso está iniciando uma conexão ssh
com sshserverhost
que executa test.sh
com o parâmetro $HOSTNAME
no servidor remoto (sshserverhost).
at now + 1 minutes <<EOF
ssh -t sshserverhost 'bash -s' <~/test.sh $HOSTNAME
EOF