crontab + expect

13. Re: crontab + expect

André Arruda
arcarruda

(usa Ubuntu)

Enviado em 08/05/2015 - 15:07h



/etc# crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command

03 * * * * expect /tmp/teste.sh > /tmp/expect.log



  


14. Re: crontab + expect

charles fábio kiefer
xibo

(usa Ubuntu)

Enviado em 08/05/2015 - 15:20h

arcarruda escreveu:



/etc# crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command

03 * * * * expect /tmp/teste.sh > /tmp/expect.log


não tenho certeza...nunca usei o expect, mas por acaso ele pode ser .sh ou tem que ser .exp? e tenta assim

1 * * * * /usr/bin/expect -f /tmp/teste.sh #sem o log ou 1 * * * * expect -f /tmp/teste.sh




15. Re: crontab + expect

André Arruda
arcarruda

(usa Ubuntu)

Enviado em 08/05/2015 - 15:38h


Não funcionou );


16. Re: crontab + expect

André Arruda
arcarruda

(usa Ubuntu)

Enviado em 08/05/2015 - 15:41h

Eu acho que teria alguma coisa pra atrasar o fechamento da chamada do crontab, como se fosse um sleep. Só que sleep não funciona.

Já tentei também, chamar o expect de dentro de um shell e executar este shell no crontab ---- não funcionou também.

É sinistro no negócio heim.


17. Re: crontab + expect

charles fábio kiefer
xibo

(usa Ubuntu)

Enviado em 08/05/2015 - 16:31h

ele pode ta com problema no script do teste.sh...da uma revisa e faz algumas consultas sobre o expect..tenta adaptar esse script no que voce precisa...pq no crontab não tem misterio deveria funcionar sim.
link : http://stackoverflow.com/questions/7494115/expect-script-does-not-work-under-crontab

#!/usr/bin/expect -f

#Time and Date
set day [timestamp -format %d%m%y]
set time [timestamp -format %H%M]

#logging
set LogDir1 "/FPerf/PortsLogs"
et timeout 5
set ipaddr [lrange $argv 0 0]
set passw "XXXXXXX"


if { $ipaddr == "" } {
puts "Usage: <script.exp> <ip address>\n"
exit 1
}


spawn ssh admin@$ipaddr
expect -re "password"
send "$passw\r"

expect -re "admin"

log_file "$LogDir1/$day-portsperfshow-$time"
send "portperfshow -tx -rx -t 10\r"
expect timeout "\n"
send \003
log_file

send -- "exit\r"
close

até onde eu sei é até ai, é o maximo que posso te ajudar...boa sorte


18. Re: crontab + expect

André Arruda
arcarruda

(usa Ubuntu)

Enviado em 08/05/2015 - 16:37h

Muito obrigado pela ajuda xibo.

Não acredito que o crontab tenha problema, só imagino que deve ser até por segurança que não roda o expect.

Eu acho que no teste.sh está tudo correto, mesmo porque na 'unha' eu consigo fazer ele funcionar:
expect /tmp/teste.sh


Vamos ver se alguém mais consegue me ajudar.

Mesmo assim, obrigado pela força xibo.


19. Solução para agendar Scripts Expect no cron.

Alexandre Magno Prado Machado
alexandre_mpm

(usa Debian)

Enviado em 30/05/2016 - 12:17h

Galera sei que o tópico é um pouco antigo, mas esse "problema" é meio chato...

Segue a solução:


Altere o parâmetro "interact" para "expect eof" fiz isso e funcionou perfeitamente...

Abraço e boa sorte...



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts