Привет!Столкнулся с проблемой, которую не могу решить. Есть несколько серверов, на которых работает FreeBSD. Каждую ночь к этим серверам подмапливается внешнее хранилище, куда бэк-апится несколько папок. Но вот беда, после этого, это хранилище не отмапливается, и с каждой ночью подключений становится всё больше и больше.
Копирую скрипт почти таким, как он есть, со всеми комментариями. Почти аналогичный скрипт на убунте работает отлично.
Спасибо за помощь.
Вот скрипт
#!/bin/shsvrname=имя_сервера
bkpdate=`date "+%Y%m%d"`
bkptime=`date "+%H%M%S"`
desthost=10.135.0.102
#destname=nas001k
destshare=/mnt/HD_a2/unix/имя_сервера
mountpoint=/mnt/nas001k
destdir=${bkpdate}_${svrname}
logpoint=${mountpoint}/.log/${svrname}.log
nagiospipe=/tmp/bkpstatus.nagiosgzip="/usr/bin/gzip"
echo 0 > ${nagiospipe}
umount -f $mountpoint 2>/dev/null 1>/dev/null
/sbin/mount_nfs ${desthost}:${destshare} ${mountpoint} 2>/dev/null 1>/dev/null
#/bin/mount -t nfs -O rsize=8192,wsize=8192,nolock ${desthost}:${destshare} $mountpoint 2>/dev/null 1>/dev/nullif [ ! -d ${mountpoint}/.check_mount ]; then
echo "NFS device not mounted! Trying to remount..."
umount $mountpoint 2>/dev/null 1>/dev/null
/bin/mount -t nfs -O rsize=8192,wsize=8192,nolock ${desthost}:${destshare} $mountpoint 2>/dev/null 1>/dev/null
#-- double check
if [ ! -d ${mountpoint}/.check_mount ]; then
echo "Something evil happening here..."
echo "check_mount dir deleted or cant mount NFS, "
echo "giving up!"
echo 0 > ${nagiospipe}
exit 0
fi;
fiif ! mkdir ${mountpoint}/${bkpdate}; then
if [ -d ${mountpoint}/${bkpdate} ]; then
echo "Deleting -rf: ${mountpoint}/${bkpdate}"
rm -rf ${mountpoint}/${bkpdate}
else
echo "Something evil happening here..."
echo "cant create backup dir on NFS device!"
echo 0 > ${nagiospipe}
exit 0
fi
fi
echo "stage 1..."
echo "Starting backup process on $svrname" > ${logpoint}
echo "Date now: `date`" >> ${logpoint}
echo "==== $svrname ==========================================" >> ${logpoint}mkdir ${mountpoint}/${bkpdate}
cd /back
rm /back/*gz
data=`date|awk '{print $2 $3}'`
echo "stage 2..."
tar -zcvf etc-${bkpdate}.tar.gz /etc 2>>${logpoint} 1>>${logpoint}
tar -zcvf root-${bkpdate}.tar.gz /root 2>>${logpoint} 1>>${logpoint}
tar -zcvf vardb-${bkpdate}.tar.gz /var/db 2>>${logpoint} 1>>${logpoint}
tar -zcvf varnamed-${bkpdate}.tar.gz /var/named 2>>${logpoint} 1>>${logpoint}
tar -zcvf usrlocaletc-${bkpdate}.tar.gz /usr/local/etc 2>>${logpoint} 1>>${logpoint}#== rsync backup here
#==
echo "==== rsync /srv/ /mnt/nas001k/rsync_srv/ ======================="
/usr/bin/rsync -ap /srv/ /mnt/nas001k/rsync_srv/ 2>/dev/null 1>>${logpoint}echo "stage 3..."
cd ${mountpoint}/${bkpdate}
cp /back/* .
cd /root/bin
echo "Backup task ended at: `date`" >> ${logpoint}
echo "==== $svrname ==========================================" >> ${logpoint}
#
# check of copying and taring need to do
#
echo 1 > ${nagiospipe}
cd /home
umount -f $mountpoint 2>/dev/null 1>/dev/null
Я бы настроил один раз и навсегда :) automounter, и забыл бы про эти проблемы.Если, конечно, нет неких спец. соображений, чтобы монтировать и размонтировать из скрипта...
> Я бы настроил один раз и навсегда :) automounter, и забыл бы
> про эти проблемы.
> Если, конечно, нет неких спец. соображений, чтобы монтировать и размонтировать из скрипта...Поддерживаю. Сам использую automount и скидываю туда резервные копии. Ни разу не было никаких проблем с монтированием - размонтированием.
> бэк-апится несколько папок. Но вот беда, после этого, это хранилище не
> отмапливается, и с каждой ночью подключений становится всё больше и больше.Проверьте, что команда umount действительно выполняется и как (уберите /dev/null). Нет ли проблем с путями ($PATH)? Настораживает, что mount с полным путём, а umount — без него.
>> бэк-апится несколько папок. Но вот беда, после этого, это хранилище не
>> отмапливается, и с каждой ночью подключений становится всё больше и больше.
> Проверьте, что команда umount действительно выполняется и как (уберите /dev/null). Нет
> ли проблем с путями ($PATH)? Настораживает, что mount с полным путём,
> а umount — без него.Уберал /dev/null, ошибки не сыпятся.
Вручную umount -f /mnt/nas001k срабатывает. Я эту команду уже и в отдельный скрипт прописывал, и в крон отдельным действие добавил.
crontab -e
35 3 * * * /root/bin/backup.sh
50 3 * * * -exec umount /mnt/nas001k/
Но не срабатывает.
Вручную команда работает, но это не выход. После выходных у меня висит три подмапленных папки.
>[оверквотинг удален]
>> а umount — без него.
> Уберал /dev/null, ошибки не сыпятся.
> Вручную umount -f /mnt/nas001k срабатывает. Я эту команду уже и в отдельный
> скрипт прописывал, и в крон отдельным действие добавил.
> crontab -e
> 35 3 * * * /root/bin/backup.sh
> 50 3 * * * -exec umount /mnt/nas001k/
> Но не срабатывает.
> Вручную команда работает, но это не выход. После выходных у меня висит
> три подмапленных папки.Что с путями-то? Если вручную работает, а в скрипте — нет, то в половине случаев не прописан или не так прописан $PATH. Чтобы наверняка, указывайте полный путь до umount.
попробуйтеumount -lf /mount_poiint
если такая опция доступа
> попробуйте
> umount -lf /mount_poiint
> если такая опция доступак сожалению, недоступна(
>> попробуйте
>> umount -lf /mount_poiint
>> если такая опция доступа
> к сожалению, недоступна(тогда umount -f /mount_point
-f The filesystem is forcibly unmounted. Active special devices
continue to work, but all other files return errors if further
accesses are attempted. The root filesystem cannot be forcibly
unmounted.
>[оверквотинг удален]
>> скрипт прописывал, и в крон отдельным действие добавил.
>> crontab -e
>> 35 3 * * * /root/bin/backup.sh
>> 50 3 * * * -exec umount /mnt/nas001k/
>> Но не срабатывает.
>> Вручную команда работает, но это не выход. После выходных у меня висит
>> три подмапленных папки.
> Что с путями-то? Если вручную работает, а в скрипте — нет, то
> в половине случаев не прописан или не так прописан $PATH. Чтобы
> наверняка, указывайте полный путь до umount.Прописал вручную. Всё-равно той ночью не отмапило
>> Что с путями-то? Если вручную работает, а в скрипте — нет, то
>> в половине случаев не прописан или не так прописан $PATH. Чтобы
>> наверняка, указывайте полный путь до umount.
> Прописал вручную. Всё-равно той ночью не отмапилоА cron рестартовать не забыли?
> А cron рестартовать не забыли?он сам рестартится )
>> А cron рестартовать не забыли?
> он сам рестартится )действительно :-)
демон crond обычно запускается от отдельного пользователя, возможно у него ограничены права на umount