скрипт оболочки, выполняющий поиск файла - PullRequest
0 голосов
/ 02 февраля 2010

я работаю над Unix. я хочу написать сценарий оболочки, который будет проверять файл с именем "temp_file.txt" на окнах и затем выполните некоторые команды. это возможно?

как мы можем подключиться к окнам и перейти в определенный каталог и проверить файл?

Ответы [ 4 ]

2 голосов
/ 02 февраля 2010

Предоставьте общий доступ к каталогу на компьютере с Windows, используя «обычные» средства обмена файлами Windows. На стороне Linux у вас есть два варианта:

  1. Используйте smbclient , чтобы подключиться к машине с Windows и проверить, существует ли файл или

  2. Используйте smbmount , чтобы смонтировать общий каталог в файловую систему Linux и проверить существование файла с помощью «стандартных» команд Linux (например, test).

Точные детали реализации будут зависеть от языка сценариев, который вы используете, но ваш псевдокод будет выглядеть примерно так:

loop:
    check if file exists
    if yes: do something useful
    sleep for some reasonable time

(я предполагаю, что вы хотите выполнить команды на компьютере с Linux).

1 голос
/ 02 февраля 2010

Если вы используете Linux (вы указываете, что используете Unix, но не какой вариант), проверьте API inotify - это позволит вам настроить респонденты для событий файловой системы (гораздо эффективнее, чем опрос).

Из сценария оболочки вы можете использовать команду inofitywait --- см. http://linux.die.net/man/1/inotifywait для получения дополнительной информации.

0 голосов
/ 02 февраля 2010

Как предположил ghostdog74, ssh - ваш лучший выбор. Вы можете запустить что-то вроде (я предполагаю, что у вас установлен Cygwin или SFU)

ssh "[ -e $file ] && do_something.sh" > do_something.log

Если ваша команда записывает в stdout, вы также получаете журнал на вашем Linux-компьютере.

Если вы настроите аутентификацию с помощью закрытого ключа, она станет еще лучше.

0 голосов
/ 02 февраля 2010

вы можете настроить SSH в Windows, а затем написать сценарий в Unix, используя SSH-клиент для подключения к Windows и выполнить команду. Альтернатива, если вы можете себе позволить, это написать пакет Windows и выполнить вашу команду на самой Windows. Или вы можете включить терминальные службы Windows и использовать протокол telnet из Unix для выдачи команды. Языки программирования, которые поддерживают telnet, включают Perl ( Net :: Telnet ) и Python ( telnetlib )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...