Вот моя цель:
У меня есть ПК с Windows XP со всем исходным кодом и база данных для разработки.
Давайте назовем это «pc.dev.XP».
У меня есть целевой компьютер под управлением Linux.
Давайте назовем это «pc.demo.Linux».
Вот что я сделал на «pc.dev.XP» (просто чтобы вы получили контекст):
- установлены все вещи Cygwin
- создал действительный ключ rsa и поместил его в папку dest
резервный компьютер, чтобы ssh не
попросить пароль
- Rsync работает очень хорошо таким образом
Если я попытаюсь сделать это на «pc.dev.XP» через командную строку:
cd \cygwin\bin
ssh Fred@pc.demo.Linux "cd /var/www && ls -al"
это прекрасно работает без пароля
Теперь вот что я хочу сделать на «pc.dev.XP»:
- запустить скрипт php, который извлекает dev. базы данных в файл sql
- ZIP-файл
- перенести его через ftp в "pc.demo.Linux"
- войдите в "pc.demo.Linux" и выполните "unzip затем mysql -e" исходный разархивированный файл "
если я запускаю "pc.dev.XP" вручную:
putty -load "myconf" -l Fred -pw XXX -m script.file.that.unzip.and.integrates.sql
это работает отлично.
То же для:
cd \cygwin\bin
ssh Fred@dest "cd /var/www && ls -al"
Если я попытаюсь выполнить exec () в php (wamp, установленный на «pc.dev.XP»), те сценарии, которые они повесят. Я почти уверен, что это потому, что пользователь «SYSTEM», а не «Fred», и putty или ssh запрашивают пароль, но, возможно, я ошибаюсь.
В любом случае, я ищу способ автоматизировать те 4 задачи, которые я описал, и я застрял, потому что exec () зависает. С директивами safe_exec_mode или safe_exec_dir проблем нет, они отключены на компьютере разработчика, поэтому exec () работает довольно хорошо, если я попробую некоторые базовые вещи, такие как exec ("dir")
Есть идеи, что я могу сделать / проверить / исправить?