Adri Verhoef
2023-02-24 12:20:27 UTC
In mijn crontab heb ik een regel staan die elke 12 minuten over het uur
een file genereert en die dan op de sftp-server van Xs4all zet. Dit doe
ik d.m.v. 'expect':
(als losstaand shellcommando:)
O=/tmp/wcgresults_m1.html; printf "%s\n" 'set timeout 600' "spawn sftp ****@sftp.xs4all.nl" 'expect {' '"password:" {send "****\n";}' '}' 'expect {' '"sftp>" {send "put '$O' WWW/tmp/\n";send "quit\n";}' '}' 'expect { eof {exit 0;} }'
Hetzelfde gebeurt als ik via crontab die file ophaal:
35 * * * * O=/tmp/wcgresults_m1.html; printf "\%s\n" 'set timeout 600' "spawn sftp ****@sftp.xs4all.nl" 'expect {' '"password:" {send "****\n";}' '}' 'expect {' '"sftp>" {send "get 'WWW$O' /tmp/test.html\n";send "quit\n";}' '}' 'expect { eof {exit 0;} }' |expect
De file WWW/tmp/wcgresults_m1.html wordt keurig opgehaald als /tmp/test.html.
(Uiteraard staat er voor de '%' in crontab een backslash, zoals voorgeschreven.)
Het enige dat ik niet begrijp: waarom wordt er (kennelijk) door 'expect' een regel in de maillogfile genegeneerd?
Feb 24 12:35:02 host=smtps.xs4all.nl tls=on auth=on user=****@xs4all.nl from=a3 recipients=a3 smtpstatus=501 smtpmsg='501 5.1.7 Bad sender address syntax' errormsg='envelope from address a3 not accepted by the server' exitcode=EX_DATAERR
Het kan niet zijn dat willekeurig welke crontabopdracht een logregel genereert,
want om 13 minuten over het uur wordt een andere opdracht uitgevoerd en die
genereert geen logregel.
OPLOSSING: 'expect' genereert output, dus die output moet je weg- of opvangen.
Adri :)
een file genereert en die dan op de sftp-server van Xs4all zet. Dit doe
ik d.m.v. 'expect':
(als losstaand shellcommando:)
O=/tmp/wcgresults_m1.html; printf "%s\n" 'set timeout 600' "spawn sftp ****@sftp.xs4all.nl" 'expect {' '"password:" {send "****\n";}' '}' 'expect {' '"sftp>" {send "put '$O' WWW/tmp/\n";send "quit\n";}' '}' 'expect { eof {exit 0;} }'
Hetzelfde gebeurt als ik via crontab die file ophaal:
35 * * * * O=/tmp/wcgresults_m1.html; printf "\%s\n" 'set timeout 600' "spawn sftp ****@sftp.xs4all.nl" 'expect {' '"password:" {send "****\n";}' '}' 'expect {' '"sftp>" {send "get 'WWW$O' /tmp/test.html\n";send "quit\n";}' '}' 'expect { eof {exit 0;} }' |expect
De file WWW/tmp/wcgresults_m1.html wordt keurig opgehaald als /tmp/test.html.
(Uiteraard staat er voor de '%' in crontab een backslash, zoals voorgeschreven.)
Het enige dat ik niet begrijp: waarom wordt er (kennelijk) door 'expect' een regel in de maillogfile genegeneerd?
Feb 24 12:35:02 host=smtps.xs4all.nl tls=on auth=on user=****@xs4all.nl from=a3 recipients=a3 smtpstatus=501 smtpmsg='501 5.1.7 Bad sender address syntax' errormsg='envelope from address a3 not accepted by the server' exitcode=EX_DATAERR
Het kan niet zijn dat willekeurig welke crontabopdracht een logregel genereert,
want om 13 minuten over het uur wordt een andere opdracht uitgevoerd en die
genereert geen logregel.
OPLOSSING: 'expect' genereert output, dus die output moet je weg- of opvangen.
Adri :)
--
2020 was een autobiografisch jaartal, daarvoor was het 1210; 2120 is het volgende.
https://nl.wikipedia.org/wiki/Autobiografisch_getal
2020 was een autobiografisch jaartal, daarvoor was het 1210; 2120 is het volgende.
https://nl.wikipedia.org/wiki/Autobiografisch_getal