Автор Тема: скрипт автоматического монтирования Windows ресурсов  (Прочитано 3462 раз)

DJ_Baldey

  • Разработчик
  • Старожил
  • *****
  • Сообщений: 258
  • Карма: +137/-6
  • ~# service djbaldey reload
    • Просмотр профиля
    • «Ros'X»
откопал в загашнике, может кому пригодится:

#!/bin/bash

##########################################################
## автомонтирование сетевых дисков при входе пользователя #
##########################################################
## рекомендуемые программы и библиотеки: python,qt3       #
##########################################################
## автор Крамаренко Григорий aka DJ_Baldey      30 октября 2008 года          #
##############################################################
## ПРИМЕЧАНИЕ:
## поскольку есть пароль в открытом виде, то необходимо       #
## этому скрипту изменить права доступа (chmod 700 скрипт.sh),#
## сделать исполняемым и кинуть его в папку автозагрузки      #
## пользователя,например  ~/.kde/Autostart                    #
##############################################################

netdir=~/NetPFR    # главная директория в каталоге пользователя,
         # в которую будут монтироваться все ресурсы.
         # без кавычек, поскольку есть тильда(экспансия)


netname="userName"    # имя пользователя для доступа на сервер

netpass="xxXXxx"    # его пароль

ip="10.x.x.x"       # ip - ip-адрес сервера, который будем пинговать и
         # монтировать его ресурсы

# параметры монтирования ресурсов

args="defaults,username=$netname,password=$netpass,iocharset=utf8"

# список дисков (ресурсов), которые нужно примонтировать
list_disk="disk_k disk_m disk_n obmen disk_x disk_y/auto disk_z disk_FTP"

count=1       # count - количество пакетов, отсылаемых ping'ом

#################################################################################
## Далее идет логика скрипта, менять здесь ничего не требуется,
## особенно - по незнанию!  ;)
#################################################################################

# result - количество пакетов, прошедших в результате выполнения ping

result=$(ping -c ${count} ${ip} | tail -2 | head -1 | awk '{print $4}')

if [ $result -eq 0 ]; then
   echo сервер не найден
   if [ -x "`which 'python'`" ] && [ -d "/usr/lib/qt3" ]; then
# запуск окна с извещением на языке Python и библиотеке QT
python -c "
# --*-- coding: utf-8 --*--
import sys
from qt import *
app = QApplication(sys.argv)
noserver = QLabel(u'Сервер $ip не найден',None)
app.setMainWidget(noserver)
noserver.show()
app.exec_loop()
"

# если невозможно запустить, то в консоли увидим сообщение
   else
      [ -x "`which 'python'`" ] || echo нет python
      [ -d "/usr/lib/qt3" ] || echo нет qt3
      zenity --title="Ошибка подключения" --error --text="Сервер не отвечает"
   fi
else
   echo сервер найден

   # если главной директории не существует,
   # то создадим ее

   if [ ! -d $netdir ]; then
      mkdir -p $netdir
   fi
   
   # если поддиректории существуют,
   # то предварительно отмонтируем их,
   # иначе создадим требуемые

   if [ -d $netdir ]; then
      for n in $list_disk # переменная n принимает каждое значение
      do          # из списка ресурсов list_disk
         if [ -d $netdir/$n ]; then
            umount.cifs $netdir/$n
            continue
         else
            mkdir -p $netdir/$n
            continue
         fi
      done
   fi

   # собственно монтирование:
   for n in $list_disk
   do
      mount.cifs //$ip/$n $netdir/$n -o $args
      continue
   done
fi
« Последнее редактирование: 19 Июль 2010, 13:18:57 от DJ_Baldey »
Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд, джазмен)