reem_sabry
написал 6 апреля 2007 года в 02:36 (2233 просмотра)
Ведет себя
неопределенно; открыл 1 тему в форуме, оставил 9 комментариев на сайте.
Здравтсвуйте всем гуру Unix.
У меня возникла не большая проблема. И кончено же хотелось бы чтоб кто-то помог.
Моя программа создает файл на сервере и записывает его в определенную папку. Мне нужно что б этот, только что, созданный файл, средствами Unix был автоматически перемещен на другой сервер используя FTP соединение.
Всем спасибо за оказанное содействие.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
например можно запускать твою прогу так
можно скрипт написать примерно такого содержания
ftp ftp://username:pass@server.ru -msend filename.txt
и все
можешь эту строку в скрипт воткнуть и сделать запуск сзару после того как твоя софтина создала файл
Здравствуйте всем
Спасибо Steck за оказанный совет.
Проблема в том что на серваке у меня нет веб сервера соответственно вариант со скриптом не пройдет.
Мне вот нужно средствами Unix отловить момент создания нового файла и тут же его перенаправить на другой хост.
Может через команды резервного копирования или через Shell Script.
Спасибо за оказанное содействие
можно воспользоваться crontab-ом
для этого, правда, из программы надо сохранять в, скажем, _file.saving.tmp, а потом переименовывать.
в команде, которая перекидывает файлы — брать файл, перемещать его в другой каталог а потом уже заливать.
ну а вообще же, из твоей программы после сохранения файла можно запустить команду на сервере.
читай о ssh, public/private keys и прочее.
ssh user@server command_to_ftp_file
Здравствйте спасибо за советы
Сейчас уже другая проблема.
Я хочу выболнить через php функцию — exec.
Но она не работает
вот код пхп
<?
exec (’./test.sh’);
?>
Файл test.sh (в той же директории что и php файл)
#!/bin/bash
mkdir test
При выполнении скрипта к сожаленью папка test не создается
А если выполнить сам bash скрипт непосредственно командой «./test.sh» из командной строки — работает!
Мне кажеться что чтото с правами доступа.
Подскажите пожалуйста
укажи полный путь к скрипту
<?
exec («/bin/ls»)
<?
к примеру
Здравствуйте
Пишу
<?
exec (’/bin/bash ./test.sh’);
?>
скрипт не запускаеться а в логах апача выводит:
sh: /bash: No such file or directory
пишу в командной строке
whereis bash
вывод:
bash: /bin/bash /usr/share/man/man1/bash.1.gz
вроде все ок
а почему не пашет не знаю
Помогите пожалуйста
содержимое файла test.sh в студию
вполне возможно, что первая строчка не правильная
типа такой:
необходимо указать правильный путь: /bin/bash
Попробуй просто
И не обязательно посредством Индейца.
Bash File:
#!/bin/bash
ls > text.txt
просто для теста
Полный путь к bash скрипту тоже не помогает
Здравствуйте
Вот вроде как мне кажеться чуть-чуть приблизился к решении моей проблемы.
Опишу ситуацию:
Был у друга за советом по поводу этого вопроса. Сделали все так как я и сделал у него на его хосте, и оказываеться у него все работает. Дальше начали искать проблему. Проблема получается явно из-за того, что у нас хосты разные, а соответственно все зависит от настроек(пхп или апача). Мы вывели phpinfo(); у нас обоих и у него configure строка компиляции пхп пустая, а у меня очень даже и большая. Я дал поиск самой функции exec и вот что я нашол: '--exec-prefix=/usr' (полная configure изолжена ниже)
Честно говоря не знаю что это означает а лишь догадываюсь что команда exec попросту не выполняется.
Если я прав то наверно нужно перекомпилировать пхп.
Подскажите прав ли я, может у вас есть какието советы.
Помогите пожалуйста.
'./configure' '--build=x86_64-redhat-linux' '--host=x86_64-redhat-linux' '--target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64\′ '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64\′ '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic' '--disable-rpath' '--with-bz2\′ '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-pspell' '--with-expat-dir=/usr' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-pear=/usr/share/pear' '--with-kerberos' '--enable-ucd-snmp-hack' '--with-unixODBC=shared,/usr' '--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--with-mime-magic=/etc/httpd/conf/magic' '--without-sqlite' '--with-libxml-dir=/usr' '--with-xml' '--with-apxs2=/usr/sbin/apxs' '--without-mysql' '--without-gd' '--without-odbc' '--disable-dom' '--disable-dba'
Только сие не функция, а суффикс и вообще из совершенно другой оперы.
Попробуй ln -S /usr/bin/bash /bin/bash
А еще переманная PATH очень интересна.
Здравствуйте
Это PATH
# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin://bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/ant/bin:/opt/jdk/bin:/usr/local/ant/bin:/opt/jdk/bin:/usr/local/ant/bin:/opt/jdk/bin
Команда ln -S /usr/bin/bash /bin/bash тоже не помогает
А еще команда
echo passthru(’whoami’);
не выводит ничего
Здравствуйте
Может ктото подскает как сконфикурировать апач таким образом что б он видел определенную папку на серваке (к примеру /tmp) и как обращаяться к ней из пхп.
Подскажите пожалуйста
ПРОБЛЕМА РЕШЕНА
Спасибо всем за оказанное содействие
Дело было в том что в php.ini был включен режим safe_mode = On и safe_mode_exec_dir была пустая
Прописал путь где нахоидться баш файл и ВСЕ заработало
Спасибо. До свиданья