MacCentre.ru Форум
Форум по компьютерам Mac, Mac OS X и продукции Apple
 
ПравилаПравила   FAQFAQ   ПоискПоиск  РегистрацияРегистрация   ПрофильПрофиль   Войти и проверить ЛСВойти и проверить ЛС   ВходВход 
Скрипт для копирования файлов на сетевой ресурс нужен
Начать новую тему   Ответить на тему Список форумов MacCentre.ru Форум » Программирование и Beta-тестирование   
Автор Сообщение
aTrop



Reputation: +77    

Зарегистрирован: 01.03.2002
Сообщения: 3152
Откуда: Тольятти

СообщениеДобавлено: Thu Jul 11, 2013 15:07
Скрипт для копирования файлов на сетевой ресурс нужен
Ответить с цитатой

Добрый день, коллеги!

Собственно, вопрос в продолжение вот этой темы. Поскольку побороть невозможность связать по сети мою рабочую машину под 10.8.4 и комп с РИПом под Win200 так и не удалось, встал вопрос - как все же перекидывать задания с рабочих машин на РИП? Самый простой вариант, что пришел в голову - кидать файлы в папку на файловом сервере, к которой прикручен Folder Action, автоматом перекидывающий добавляемые файлы на РИП (благо файловый сервер под Mac OS 10.4.11, у которой проблем подцепить расшаренную папку с Win 200 нет). Погуглив, нашел вот тут такой вот скрипт (который, кстати, попутно еще и монтирует шару, если она до того была не подцеплена):

property extension_list : {"torrent"}
on adding folder items to this_folder after receiving added_items
repeat with i from 1 to number of items in added_items
set this_item to item i of added_items
set the item_info to the info for this_item
if (the name extension of the item_info is in the extension_list) then
tell application "Finder"
mount volume "afp://username:password@myserver.domain.or.ip.address/sharedvolume"
delay 1
move this_item to folder "Downloads" of disk "sharedvolume"
delete this_item
end tell
end if
end repeat
end adding folder items to


Вроде бы аккурат то, что надо. Правда, проверка на тип расширения файла мне не очень была нужна, ничего лишнего я туда кидать не планировал, поэтому соответствующие строки просто закомментировал, а move поменял на copy. И, после правки путей до сетевых ресурсов, получилось вот такое:

-- property extension_list : {"ps"}
on adding folder items to this_folder after receiving added_items
repeat with i from 1 to number of items in added_items
set this_item to item i of added_items
-- set the item_info to the info for this_item
-- if (the name extension of the item_info is in the extension_list) then
tell application "Finder"
mount volume "smb://md???11:md???11@172.24.96.119/TO PROOF"
delay 1
copy this_item to folder "/" of disk "TO PROOF"
-- delete this_item
end tell
-- end if
end repeat
end adding folder items to


И все бы хорошо, но вот только не работает оно! При закидывании файла в папку, к которой этот скрипт привязан, как Folder Action, он начинает работать (потому как расшаренная папка с РИПа нормально монтируется)… и на этом все… Копирования не происходит! А вот почему - я, увы, понять не могу. Подозреваю, что что-то может быть не так в строке:

copy this_item to folder "/" of disk "TO PROOF"

Но вот что? Я пробовал работу скрипта и в таком варианте, и в исходном, где было:

copy this_item to folder "Downloads" of disk "sharedvolume"

cоздав предварительно папку Downloads на расшаренном ресурсе…
И вот в таком варианте тоже:

copy this_item to disk "TO PROOF"

Бесполезно, не копируются файлы. Пробовал и в совсем уже исходном варианте, с проверкой расширения (поменяв только исходный "torrent" на "ps") - фиг вам!
И добавив (на всякий случай - мало ли) в начало скрипта найденный так же в сети код для проверки - окончилось ли копирование, который выглядит вот так:

on adding folder items to theFolder after receiving theFiles

-- This should make the folder action wait until large files have finished copying to the folder
set fSizes to {0}
repeat
tell application "System Events" to set end of fSizes to size of theFolder
if (item -1 of fSizes) = (item -2 of fSizes) then exit repeat
delay 1
end repeat

-- If you want to do something with each file ...
repeat with aFile in theFiles
-- your code goes here
end repeat

end adding folder items to


Увы, это тоже не помогло, а сам я в скриптописании практически ноль…
Может кто-то натолкнет меня на то, где ж тут "собака порылась" и в какую сторону копать, чтобы таки заставить файлы копироваться.

Заранее благодарен!

P.S. Вариант с созданием FolderAction через Automator не подходит, в 10.4 такого еще не было (в смысле - не было возможности создать в Автоматоре FolderAction workflow). В более поздних системах - можно, в 10.4 - еще нет. Во всяком случае, я такого не нашел. Или плохо искал?

P.P.S. Дабы предупредить возможные вопросы - FolderAction цеплялся к папке непосредственно на одном из дисков на файловом сервере, то есть именно там, где предполагается дальнейшая его работа, а *.ps файл закидывался в ту папку с моей машины. Единственное, что чтоб не бегать постоянно в серверную подредактировать текст скрипта, я цепляюсь серваку через TeamViewer в режиме Full Access, но это-то ИМХО никак не должно влиять на работу скрипта!

_________________
Andrew AKA Trop
ICQ 33808885
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
zztatarin



Reputation: +34    

Зарегистрирован: 04.08.2006
Сообщения: 4259

СообщениеДобавлено: Mon Jul 15, 2013 23:54
Ответить с цитатой

aTrop писал(а):
repeat with i from 1 to number of items in added_items
Во первых
zztatarin писал(а):
Известная "ошибка???" Finder Scripting, называемая Radar problem 2741967. Суть ее заключается в том, что Finder при возврате одной ссылки на объект возвращает именно ссылку, а не список ссылок из одного элемента.
aTrop писал(а):
copy this_item to disk "TO PROOF"

Во вторых, если мне не изменяет память, Finder не знает команды copy, а знает duplicate тра-та-та to TARGET. Конструкцию to disk "TO PROOF" желательно заменить на to "TO PROOF" as alias.

_________________
Написаное есть моё личное ИМХО. Например:
ИМХО компьютер железный, вот пускай и работает. А я не трактор, для пахоты не предназначен...
И ещё. Учу пользоваться Гуглом!
Искренне Ваш ﺗﺘﺮ


Последний раз редактировалось: zztatarin (Tue Jul 16, 2013 21:42), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение iChatICQ Number
blblTb



Reputation: +99    

Зарегистрирован: 30.01.2008
Сообщения: 5588
Откуда: Норильск

СообщениеДобавлено: Tue Jul 16, 2013 07:43
Ответить с цитатой

Вас обоих надо сжечь на костре за колдовство.

Если есть файловый сервер – открыть на нём доступ по ftp и использовать простенькую прогу, вроде Cyberduck для автоматической заброски из папки.

_________________
Да, это я напустил...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
aTrop



Reputation: +77    

Зарегистрирован: 01.03.2002
Сообщения: 3152
Откуда: Тольятти

СообщениеДобавлено: Wed Jul 17, 2013 12:31
Ответить с цитатой

blblTb писал(а):
Вас обоих надо сжечь на костре за колдовство.

Не надо никого жечь! И вааще, это не колдовство, а обычное камлание с бубном! Smile Smile
blblTb писал(а):
Если есть файловый сервер – открыть на нём доступ по ftp и использовать простенькую прогу, вроде Cyberduck для автоматической заброски из папки.

Мне не нужен доступ к ФАЙЛОВОМУ серверу по FTP, он у меня есть и без всяких дополнительных телодвижений - хоть по afp, хоть по smb. И без всяких проблем. Проблема в том, что у меня нет доступа к машине под Вин2000, на которой крутится РИП СТР-системы и на которой расшарена watch folder оного РИПа (не пускает Винда к своей шаре мою машину под 10.8. Маки под 10.4, 10.5 - подсоединяются без вопросов, под 10.8 - фигвам). А мне туда надо файлы кидать (и не только мне, кстати)...

_________________
Andrew AKA Trop
ICQ 33808885


Последний раз редактировалось: aTrop (Wed Jul 17, 2013 12:35), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
aTrop



Reputation: +77    

Зарегистрирован: 01.03.2002
Сообщения: 3152
Откуда: Тольятти

СообщениеДобавлено: Wed Jul 17, 2013 12:33
Ответить с цитатой

zztatarin писал(а):
Во вторых, если мне не изменяет память, Finder не знает команды copy, а знает duplicate тра-та-та to TARGET. Конструкцию to disk "TO PROOF" желательно заменить на to "TO PROOF" as alias.

Спасибо, попробую! Как со срочными работами разгребусь... У нас тут того... выборы намечаются... пусть и городского масштаба, но... Со всеми вытекающими!..

_________________
Andrew AKA Trop
ICQ 33808885
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Показать сообщения:   
Начать новую тему   Ответить на тему Список форумов MacCentre.ru Форум » Программирование и Beta-тестирование Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


Связь с администраторами

Powered by phpBB © 2001, 2005 phpBB Group