У меня есть скрипт, который выводит БД и копирует его в S3.Это запись crontab, которая вызывает скрипт:
*/1 * * * * /root/scripts/backupDB.sh
backupDB.sh:
#!/bin/sh -e
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/
date_now=`date +%Y_%m_%d_%H_%M`
dir_name="db_backup"
tar_name="db_backup_${date_now}.tar.gz"
file_name="${dir_name}/${tar_name}"
if [ -z "$dir_name" ]; then
mkdir $dir_name
fi
log() {
echo $1
echo $1 >> ${HOME}/tmp/mybackup.log
}
do_cleanup(){
rm -rf db_backup*
log 'cleaning up....'
}
do_backup(){
log 'Starting the backup' && \
/usr/bin/mongodump -o ${HOME}/${dir_name} && \
log 'Data dump created'
/bin/tar -cjf ${HOME}/${tar_name} ${HOME}/${dir_name} && \
log 'Created archive'
log 'saving the backup archive in amazon S3' && \
/usr/bin/s3cmd put --acl-private ${HOME}/${tar_name} s3://bucket/db-backups/${tar_name} && \
log 'data backup saved in amazon s3'
}
do_backup && do_cleanup
При запуске через терминал тот же скрипт сбрасывает всебазы данных.При запуске через cron выдает только несколько коллекций каждой базы данных.Лог mongodb вставляется сюда . Ничего странного не показывает.Вы можете видеть, что соединения устанавливаются в начале каждой минуты, соответствуют записи в crontab, которая вызывает скрипт.Но это также показывает, что соединение заканчивается немедленно.В чем может быть проблема?