1 (24.12.2012 10:59:48 отредактировано Toje)

Есть простой скрипт

#!/bin/sh

######### Script Backup ############

# Mount BackupServer

mount //192.168.2.12/backups /mnt/istor -o user=admin,password=********** ,iocharset=utf8

# Macros  of current date

current_date=`date +%F`

# Create directories in BackupServer

mkdir /mnt/istor/admin/centos/gate/$current_date
mkdir /mnt/istor/admin/centos/gate/$current_date/scripts

# Backup

tar -cvjf /mnt/istor/admin/centos/gate/$current_date/gate-etc.tbz2 /etc
tar -cvjf /mnt/istor/admin/centos/gate/$current_date/gate-openvpnkeys.tbz2 /usr/share/openvpn/easy-rsa/2.0/keys
tar -cvjf /mnt/istor/admin/centos/gate/$current_date/gate-lightsquid.tbz2 /var/www/html/lightsquid
tar -cvjf /mnt/istor/admin/centos/gate/$current_date/gate-nginx-html.tbz2 /usr/share/nginx
cp /root/*.sh /mnt/istor/admin/centos/gate/$current_date/scripts/


# Umount BackupServer

umount /mnt/istor

############## END #####################################

Запускал , ничего не происходит.
в процессах висит:
837 ?        Ss     0:00 /bin/sh /root/backup_gate.sh
838 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor -o user=admin,password=********,iocharset=utf8

2050 ?        Ss     0:00 /bin/sh /root/backup_gate.sh
2051 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor -o user=admin,password=********,iocharset=utf8

2998 ?        Ss     0:00 /bin/sh /root/backup_gate.sh
2999 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor -o user=admin
3993 ?        Ss     0:00 /bin/sh /root/backup_gate.sh
3994 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor -o user=admin,password=**,iocharset=utf8
4935 ?        S      0:00 CROND
4937 ?        Ss     0:00 /bin/sh /root/backup_gate.sh
4938 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor -o user=admin,password=**,iocharset=utf8
5802 ?        S      0:00 CROND
5804 ?        Ss     0:00 /bin/sh /root/backup_gate.sh
5805 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor -o user=admin,password=**,iocharset=utf8
6693 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor -o user=admin,password=**,iocharset=utf8
7410 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor -o user=admin,password=**,iocharset=utf8
7495 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor -o user=admin,password=**,iocharset=utf8

пару дней назад 192.168.2.12 невозможно было на него зайти. и видимо процесс подвис.

пытался убить процесс
kill 837
kill 838
получилось вот так:
837 ?        Zs     0:00 [backup_gate.sh] <defunct>
838 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor -o user=admin,password=**,iocharset=utf8

Подскажите что тут можно сделать?

2

В отдельно строка выполняется  ?

user=admin,password=********** ,iocharset=utf8

3 (24.12.2012 11:19:18 отредактировано Toje)

l_cho пишет:

В отдельно строка выполняется  ?

user=admin,password=********** ,iocharset=utf8

это в скрипте прописано

4

Toje пишет:

это в скрипте прописано

Вероятно, имелось в виду, «а вручную удалённый ресурс монтируется?»

Был, был и весь вышел...

5 (24.12.2012 11:29:52 отредактировано Toje)

Lupo Alberto пишет:

Вероятно, имелось в виду, «а вручную удалённый ресурс монтируется?»

Честно говоря плохо знаком с linux, поэтому сори за такого рода вопросы. Вручную ничего  не монтировал. скрипт запускается кроном. А есть разница в том как монтируется удаленный ресурс?
попробую..
ничего не происходит... курсор прыгает в самое начало след строки там и стоит

6

для начала тогда  http://www.opennet.ru/man.shtml?topic=m … category=8 и вам все станет ясно

7 (24.12.2012 12:35:59 отредактировано Toje)

l_cho пишет:

для начала тогда  http://www.opennet.ru/man.shtml?topic=m … category=8 и вам все станет ясно

Почитал конечно, но проблема не решилась, В таблице mtab этот ресурс прописан. но войти на него не смог. попробывал размонтировать  никакого результата.
Меня больше волнуют висячие процессы. и никакого ответа на команды, ни ошибки ничего.

8 (24.12.2012 14:54:28 отредактировано afanasev.p)

Имхо, было бы не плохо добавить в скрипт какой-нибудь флаг его завершения. Обычно я делаю так:

PID_FILE=/tmp/$(basename $0).pid

if [ -f "${PID_FILE}" ]; then
  OLD_PID=$(cat "${PID_FILE}")
  ps ${OLD_PID} 2>&1 1>/dev/null
  [ $? -eq 0 ] && echo "Предыдущая копия скрипта не завершила свою работу" && exit 1
fi

touch "${PID_FILE}"
echo $$ > "${PID_FILE}"

# далее можно смело выполнять любые действия, с уверенностью в том, что этот скрипт работает в единственном экземпляре
...

Ну а для того, чтобы прибить все mount-ы и т.п:

 Консоль:
killall backup_gate.sh

либо
 Консоль:
killall mount

либо
 Консоль:
ps ax | grep backup_gate.sh

и ручками килять ab

Для решения ситуации с монтированием неплохо было бы проверить смонтирован ли удаленный ресурс (команда mount). Если он смонтирован - размонтировать, дождаться запуска скрипта (либо запустить руками) и посмотреть на результат выполнения. Судя по тому, что у вас висит куча процессов mount - проблема именно в этом.

Так же можно включить дебаггинг выполнения скрипта (если ваш /bin/sh -> /bin/bash):
#!/bin/sh -x

+ к этому частенько бывает полезной функция (имеет смысл при выполнении нескольких "молчаливых" команд подряд):

function silent () {
 echo "[$(date "+%Y%m%d %H:%m:%S")] command: $*"
 // далее можно добавить перенаправление 2>/dev/null (по вкусу)
 $*
}

И соответственно вместо вызова команды напрямую использовать нечто:
silent mkdir /mnt/istor/admin/centos/gate/$current_date

И баба с воза, и волки сыты...

9

afanasev.p пишет:

Ну а для того, чтобы прибить все mount-ы и т.п:
Консоль
killall backup_gate.sh

либо
Консоль
killall mount

либо
Консоль
ps ax | grep backup_gate.sh

и ручками килять ab

31885 ?        D      0:00 mount //192.168.2.12/backups /mnt/istor
висит процесс, я выполняю
kill 31885
процесс висит, пробывал
kill -9 31885
он все равно висит...
umount конечно сообщает
device is busy

10

Toje пишет:

umount конечно сообщает
device is busy

umount -l /mnt/istor

It is good day to die ...
MS Windows 10
Заметки о главном...

11

Спасибо за советы. Последняя команда тоже безрезультатно. пришлось-таки перезапускать сервер.