Portál AbcLinuxu, 10. května 2025 16:18
# crontab -l * * * * * /home/test/bin/cuc.sh >> /tmp/crontestcuc.sh vypadá takto:
# cat cuc.sh #!/usr/bin/expect -f spawn ssh USERID@bmc3 temps expect { "Password:" {send PASSWORD\r} } interact exit 0Přesto se cronjob nevykoná, viz.
# cat /tmp/crontest spawn ssh USERID@bmc3 temps Password: spawn ssh USERID@bmc3 temps Password: spawn ssh USERID@bmc3 temps Password: spawn ssh USERID@bmc3 temps Password: spawn ssh USERID@bmc3 temps Password: spawn ssh USERID@bmc3 temps Password: spawn ssh USERID@bmc3 temps Password:tj. z nějakého důvodu chybí výpisy teplot, je to jinak než když pustím cuc.sh z příkazové řádky:
# ./cuc.sh spawn ssh USERID@bmc3 temps Password: system> Temperatures are displayed in degrees Fahrenheit/Celsius WR W T SS HS --------------------------------------------------------------------------------------- Ambient Temp 102.20/39 109.40/43.00 84.20/29.00 114.80/46.00 122.00/50.00 PCI Riser 1 Temp 150.80/66 158.00/70.00 95.00/35.00 176.00/80.00 185.00/85.00 PCI Riser 2 Temp 150.80/66 158.00/70.00 84.20/29.00 176.00/80.00 185.00/85.00 CPU1 VR Temp 195.80/91 203.00/95.00 95.00/35.00 212.00/100.00 221.00/105.00 CPU2 VR Temp 195.80/91 203.00/95.00 91.40/33.00 212.00/100.00 221.00/105.00 DIMM AB VR Temp 195.80/91 203.00/95.00 89.60/32.00 212.00/100.00 221.00/105.00 DIMM CD VR Temp 195.80/91 203.00/95.00 86.00/30.00 212.00/100.00 221.00/105.00 DIMM EF VR Temp 195.80/91 203.00/95.00 84.20/29.00 212.00/100.00 221.00/105.00 DIMM GH VR Temp 195.80/91 203.00/95.00 86.00/30.00 212.00/100.00 221.00/105.00 PCH Temp 192.20/89 199.40/93.00 114.80/46.00 208.40/98.00 217.40/103.00Netušíte někdo, v čem by mohl být problém? Mě napadá akorát to, že cuc.sh normálně trvá cca 4-5s. Nevím ale, proč by se jenom díky pauze nevykonal celý skript.... Popř... jak takovou věc debugovat?
Řešení dotazu:
expect
.
Stačilo by mi, kdyby cuc.sh
vypsal první řádek té teploty. Tj. ten, co začíná "Ambient Temp"
.
interactpoužij
expect eof(a ošetři si i korektní odhlašování z té sondy) Interact totiž pracuje s pty, ale při volání z crontabu se žádný terminál nealokuje (snad teďka necanstám kraviny) Ale jak doporučuje někdo výše, sshpass je pro tebe ta správná volba.
Fascinuje mne, jak často u dotazů na problémy s cronem tazatel tvrdí, že se job nevykoná, přestože jím poskytnuté informace svědčí o pravém opaku…
Zkusil jsem Google na "cron expect": první odkaz, druhý odkaz, … Zkusil jste to, co tam doporučují ("expect eof
" místo "interact
")?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.