набросал скрипт который бекапит файлы и отправляет из через scp на другой сервер. scp запрашивает пароль, пихаю его через expect. если запускать скрипт самому ./lol.sh но всё нормально и архивируется и копируется, если же вешаю на крон этот же скрипт то он только создаёт архивы но не отправляет их.
#!/bin/bash
cd /var/www/backups
find -mtime +14 -name "backup*" -delete
cd /var/www/data
bname=backup`date "+%Y-%m-%d"`.tar.gz
mname=backup_mysql_`date "+%Y-%m-%d"`.tar.gz
pass="querty"
tar czf $bname --exclude="*.tar.gz" www pma
mv $bname ../backups/$bname
backdir="/var/www/backups/tmp"
files=(
db_name
db1_name
)
cd $backdir
for i in "${files[@]}"
do
namedb=backup_"${i}"_`date "+%Y-%m-%d"`
mysqldump -uroot -pquerty -hlocalhost "${i}" > ${namedb}.sql
tar czf ${namedb}.tar.gz ${namedb}.sql
rm ${namedb}.sql
done
tar czf ${mname} --exclude=${mname} *
mv ${mname} ../
cd ../
expect -c "
spawn scp ${bname} ${mname} user@server:/somedir
expect {
"*password:*" { send $pass\r\n; interact }
eof { exit }
}
exit
"
rm -rf tmp
mkdir tmp
#crontab
0 2 */7 * * root /var/www/b.sh
на мыло приходит сообщение
spawn scp backup_somedate.tar.gz backup_mysql_somedate.tar.gz user@server:/somedir user@server's password:
ида, ось debian squeeze