The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Bash script руками запускается а вот через крон нет"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Bash script руками запускается а вот через крон нет"  +/
Сообщение от Pr0lka (ok) on 17-Май-09, 22:31 
Написал скрипт который монтирова,синхронезировал сетевую папку и папку на машине, удалял старые файлы, проверял наличие 3 предпоследних баз (чтобы тупо все не удалилось), и в конце отцеплялся.

# uname -a
FreeBSD FreeBSD 7.0-RELEASE

Данный скрипт работает если его запустить руками из под рутом, все нормально проходит и работает, пишет лог.
#! /bin/sh
dt=`date \+\%Y\%m\%d`                                                   # дата в формате 20091231
dt1=`date \+\%d.\%m.\%Y`                                                   # дата в формате 2009.12.31
let "oldt = $dt - 8"                                                    # получаем дату которая была 8 дней назад
let "oldd = $dt - 3"                                                    # получаем дату которая была 3 дня назад
in="/backup"                                                            # исходная папка
out="/shares/gm4/Upload/"                                               # конечная папка
inc=--include                                                           # исключаем
exc=--exclude                                                           # включаем
log="/shares/gm4/Upload/backup/log/$dt1.log"                            # куда пишем лог
nam0="rsync"                                                         # имя скрипта
nam1="tmp"                                                              # имя файла для проверки
#sleep 10
#######################################################
########### Проверка на повторный запуск ##############
        echo "1. Проверка на запуск копии ..." >> $log
rn0=`ps -ax | grep -c $nam0`
        echo "rn0 = "$rn0
if !(test $rn0 -gt "2")
    then
        echo "2. Скрипт уже запущен!!!" >> $log
        exit 1;
    else
        echo "2. Скрипт запускается..." >> $log
fi
########################################################
        echo "3. Монтирую сетевой диск..." >> $log
mount_smbfs -N //administrator@server/backup /backup &&                 # монтируем сетевой каталог
#######################################################
########### Проверяем подмонтировалась ли папка #######
rn1=`ls -l $in | grep -c $nam1`
        echo "rn1 = "$rn1
if !(test $rn1 -gt "0")
    then
        echo "4. Сетевой диск не примонтирован!!!" >> $log
        exit 0;
    else
        echo "4. Сетевой диск примонтирован..." >> $log
fi
######################################################
########## Синхронизация папок #######################
        echo "5. Синхронизация..." >> $log
rsync -auxS --progress $inc '*.rar' $exc 'tmp' $exc '*.*' $in $out      # синхронизируем файлы с раширением rar
echo " " >> $log
#sleep 300
rn2=`ls -l $in | grep -c base$dt.rar`
        echo "rn2 = "$rn2
if !(test $rn2 -gt "0")
    then
        echo "6. Базы не синхронизировались!!!" >> $log
        exit 0;
    else
        echo "6. Синхронизация закончена." >> $log
fi
########################################################
#### Дальше проверяем предпредпоследний архив базы #####
        echo "7. Проверка архивов..." >> $log
rn3=`ls -l $in | grep -c base$oldd.rar`                                 # тут происходит поиск предпредпоследний базы
        echo "rn3 = "$rn3
#Если базы, останавливаем скрипт
if !(test $rn3 -gt "0")
    then
        echo "8. нет старых архивов!!!" >> $log
        exit 0;
# Если они есть то удаляем старые базы
    else
        echo "8. Все в порядке базы на месте, удаляем старые архивы!" >> $log
        rm "$out/backup/"base$oldt.rar 2>/dev/null                          # удаляем в конечной папке 8 дневные архивы
        rm "$in/"base$oldt.rar 2>/dev/null                                  # удаляем в исходной папке 8 дневные архивы
fi
######################################################
########### Проверяем подмонтировалась ли папка #######
    echo "9. Отключаю сетевой диск..." >> $log
umount $in
rn4=`ls -l $in | grep -c rar`
        echo "rn4 = "$rn4
if !(test $rn4 -gt "0")
    then
        echo "10. Сетевой диск отмонтирован!!" >> $log
        exit 0;
    else
        echo "10. не смог отмонтировать сетевой диск!!!" >> $log
        cd $out
        umount $in

но если запускать по крону он не синхронезирует папки почему-то(

#minute hour    mday    month   wday    who     command
0       7       *       *       *       root    /usr/local/etc/myscript/rsync/rsync

затыки происходят на строке

rsync -auxS --progress $inc '*.rar' $exc 'tmp' $exc '*.*' $in $out      # синхронизируем

ответ из /var/log/cron
May 17 22:09:00 file /usr/sbin/cron[28327]: (root) CMD (/usr/local/etc/myscript/rsync/rsync)

хелп ми народ плз...

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Bash script руками запускается а вот через крон нет"  +/
Сообщение от Anonym on 17-Май-09, 23:26 
>Написал скрипт который монтирова,синхронезировал сетевую папку и папку на машине, удалял старые
>файлы, проверял наличие 3 предпоследних баз (чтобы тупо все не удалилось),
>и в конце отцеплялся.
>
># uname -a
>FreeBSD FreeBSD 7.0-RELEASE
>
>Данный скрипт работает если его запустить руками из под рутом, все нормально
>проходит и работает, пишет лог.

<выкусано>

>
>ответ из /var/log/cron
>May 17 22:09:00 file /usr/sbin/cron[28327]: (root) CMD (/usr/local/etc/myscript/rsync/rsync)

То есть скрипт то запускается а вот пути он не видит !
Нужно пути править! Обычная засада призапуске из крона


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Bash script руками запускается а вот через крон нет"  +/
Сообщение от Pr0lka (ok) on 17-Май-09, 23:46 
добавил
rsync="/usr/local/bin/rsync"
и
$rsync -auxS --progress $inc '*.rar' $exc 'tmp' $exc '*.*' $in $out

все заработало... спс... нуб согласен))) спс большое.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру