The OpenNET Project / Index page

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

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

"Perl псевдо синхронизация каталогов"  
Сообщение от _adramelech_ email(ok) on 26-Сен-07, 20:04 
Есть задача
1) Надо смонтировать сетевые самба ресурсы
2) найти все заданные папки
3) удалить все файлы
4) Все файлы с каталога источника скопировать в эти найденные папки папки
5) размонтировать сетевые шары
Вот такой скрипт я написал но проблема в том что удаляет оно все что нужно, но копирует не во все папки, хотя доступ есть ко всему на чтение запись, вызов внутреней команды cp не хочет копировать грит немогу создать простой файл воспользовался перловой оно копирует но всеравно по левому как то ( подскажите в чем трабл, на удаление то все ок (

#!/usr/bin/perl

##################################################################
#                       mount profile                             #
###################################################################
system ("mount -t cifs -o username=\"netadmin\",password=\"xxxx\"      //192.168.8.251/term1_kostelnaya /mnt/server_tm/term1_kostelnaya"  );
system ("mount -t cifs -o username=\"netadmin\",password=\"xxxx\"      //192.168.8.252/term2_kostelnaya /mnt/server_tm/term2_kostelnaya"  );
system ("mount -t cifs -o username=\"Администратор\",password=\"xxxx\"  //192.168.1.1/term_gs13 /mnt/server_tm/term_gs13"  );
system ("mount -t cifs -o username=\"Администратор\",password=\"xxxx\"  //192.168.0.251/term1_gs6b /mnt/server_tm/term1_gs6b"  );
system ("mount -t cifs -o username=\"Администратор\",password=\"xxxx\"  //192.168.0.252/term2_gs6b /mnt/server_tm/term2_gs6b"  );
system ("mount -t cifs -o username=\"netadmin\",password=\"xxxx\"       //192.168.8.250/profiles_kos /mnt/server_tm/profiles_kos" );
###################################################################

###################################################################
#                generetic url from white-list                    #
###################################################################
$targetfile = "/usr/sinhron/url/";
$whitelist  = "/var/conf/RESTRICTED_AREA";
open(F, $whitelist);
while(<F>)
   {
   s/\r//g; s/\n//g; s/\s//g; s/\.\*//g;
   my($url, $name)=split(/#/, $_);
   if ($name eq ''){$name='Default';}
   print "url = $url name = $name\n";
   open(F1, ">$targetfile/$name".'.url');

   print F1 "[InternetShortcut]\r\n";
   print F1 "URL=http://$url\r\n";

   close(F1);
   }
close(F);
###################################################################
#                     find & relase "Избраное"                    #
###################################################################

###################################################################
#                       perl version                              #
###################################################################

########## delete all *.url  ######################################
open (G, "/usr/bin/find /mnt/server_tm/ -type f -name *.url -print | ");

while (<G>)
     {
     s/\r//g; s/\n//g;
     unlink("$_");
    print ("$_") ;
     }
close(G);
###################################################################
#                     find & relase "Избраное"                    #
###################################################################

###################################################################
#                       perl version                              #
###################################################################

########## delete all *.url  ######################################
open (G, "/usr/bin/find /mnt/server_tm/ -type f -name *.url -print | ");

while (<G>)
     {
     s/\r//g; s/\n//g;
     unlink("$_");
    print ("$_") ;
     }
close(G);

################## copy all "Избранное"###########################
     open (F, "/usr/bin/find /mnt/server_tm/ -type d -name Избранное -print | ");
while(<F>)
    {

    s/\r//g; s/\n//g;
#     system ("/bin/cp /usr/sinhron/url/* '$_'");
use File::Copy;
$source = "/usr/sinhron/url/";
copy($source, $_);
#    print ("$_") ;
    }
close(F);

###################################################################
sleep (15);
###################################################################
#                       umount                                    #
###################################################################
system ("umount /mnt/server_tm/term1_kostelnaya");
system ("umount /mnt/server_tm/term2_kostelnaya");
system ("umount /mnt/server_tm/term_gs13");
system ("umount /mnt/server_tm/term1_gs6b");
system ("umount /mnt/server_tm/term2_gs6b");
system ("umount /mnt/server_tm/profiles_kos");
###################################################################
exit 0;

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

 Оглавление

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


1. "Perl псевдо синхронизация каталогов"  
Сообщение от NuINu (??) on 27-Сен-07, 09:31 
>Есть задача

не верю что ты самостоятельно не разберешься!
такой скрипт написал а на фигне споткнулся.

ну в system передавай не строку а список.
после copy определяй результат и при ошибке распечатывай $!

"оно копирует но всеравно по левому как то"
и как по левому?

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

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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