Portál AbcLinuxu, 4. prosince 2025 16:33
scp posílám ven.
Když skript spustím pomocí sudo, vše proběhne bez problémů. Když jej ale spouští cron jako root, vše proběhne správně až na to scp.
Nemáte někdo prosím ponětí, kde mám hledat chybu?
Tady je relevantní část toho skriptu:
function put_files () {
# First linux build
echo "Putting linux build on net..."
cd $build_dir_linux
/etc/local/secp kicad-`date +%Y%m%d`-r$version-linux.tar.bz2 linux
# Then source package
echo "Putting source package on net..."
cd $build_dir_source
/etc/local/secp kicad-`date +%Y%m%d`-r$version-source.tar.bz2 source
# First windows build
echo "Putting windows build on net..."
cd $build_dir_win32
/etc/local/secp kicad-`date +%Y%m%d`-r$version-windows.tar.gz windows
# And send messages
echo "Sending messages about new release..."
cat $log_file | mail -s "Kicad - "$version me@example.com
}
secp je:
#!/usr/bin/expect -f
set filename [lindex $argv 0]
set directory [lindex $argv 1]
spawn scp "$filename" user@myhosting.com:/public_html/kicad/$directory/
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "secretpassword\r"
}
}
interact
Díky za jakoukoli pomoc.
HOME=/root LOGNAME=root PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin SHELL=/bin/sh PWD=/rootCo z toho prosím vyplývá?
error.log to vytvoří, ale s nulovou délkou. To jsem z toho jelen
#!/usr/bin/expect --
set timeout 30
spawn /usr/local/bin/scp -P 36000 user@ip:/data/myfile /data1
expect {
"password:" {
send "password\r"
} "yes/no)?" {
send "yes\r"
set timeout -1
} timeout {
exit
} eof {
exit
}
}
file not found.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.