The OpenNET Project / Index page

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

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

"Debian напрямую не исполняет .pl скрипты"  
Сообщение от Александр email(??) on 15-Фев-08, 18:09 
Проблема такая. Набираю в командной строке
test.pl пишет bash: command test.pl not found
Пишу perl test.pl - все работает.

Проблема в том, что строка в кроне 11 * * * * perl /home/test.pl
не хочет исполняться, а напрямую 11 * * * * /home/test.pl не работает.

Видел решение такой проблемы на одном форуме, там писали, что набирайте не test.pl,
а ./test.pl и все заработает.

Но ведь в кроне с ./ не указать, ведь там надо полный путь указывать.

Как быть?

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

 Оглавление

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


1. "Debian напрямую не исполняет .pl скрипты"  
Сообщение от SeLarin email(ok) on 15-Фев-08, 18:14 
А у test.pl какие права стоят? А в первой строчке у него корректный путь к интерпретатору указан? А в баше запускать надо действительно ./test.pl
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Debian напрямую не исполняет .pl скрипты"  
Сообщение от Александр (??) on 15-Фев-08, 19:24 
>А у test.pl какие права стоят? А в первой строчке у него
>корректный путь к интерпретатору указан? А в баше запускать надо действительно
>./test.pl

755
В первой строчке #!/usr/bin/perl
В баше то баше, а как эти самы ./test.pl в кроне прописать?

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

3. "Debian напрямую не исполняет .pl скрипты"  
Сообщение от Александр (??) on 15-Фев-08, 19:27 
>В баше то баше, а как эти самы ./test.pl в кроне прописать?

Имел ввиду, что в кроне надо полный путь к скрипту указывать, ./в начале не указать.

Быть может кто-знает откуда крон считает свой начальный путь, тогда можно было прописать что-то типа ../../../home/test.pl

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

4. "Debian напрямую не исполняет .pl скрипты"  
Сообщение от newser (ok) on 15-Фев-08, 19:34 
>>В баше то баше, а как эти самы ./test.pl в кроне прописать?
>
>Имел ввиду, что в кроне надо полный путь к скрипту указывать, ./в
>начале не указать.
>
>Быть может кто-знает откуда крон считает свой начальный путь, тогда можно было
>прописать что-то типа ../../../home/test.pl

Не нужно хотеть этого. Прописывайте полный путь. Либо задайте переменную PATH соответствующим образом.

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

5. "Debian напрямую не исполняет .pl скрипты"  
Сообщение от Александр (??) on 15-Фев-08, 21:08 
>Не нужно хотеть этого. Прописывайте полный путь. Либо задайте переменную PATH соответствующим
>образом.

я же писал в первом посте полный путь /home/test.pl не работает, bash пишет
пишет command not found, т.е. файл по адресу /home/test.pl есть, но bash  как исполняемый файл его не рассматривает


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

6. "Debian напрямую не исполняет .pl скрипты"  
Сообщение от SeLarin email(??) on 16-Фев-08, 01:10 
>я же писал в первом посте полный путь /home/test.pl не работает, bash
>пишет
> пишет command not found, т.е. файл по адресу /home/test.pl есть, но
>bash  как исполняемый файл его не рассматривает

Ну а perl точно лежит в /usr/bin? Попробуй для теста права на скрипт 0777 поставить.

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

7. "Debian напрямую не исполняет .pl скрипты"  
Сообщение от Hetzer (ok) on 16-Фев-08, 13:59 
>Проблема в том, что строка в кроне 11 * * * * perl /home/test.pl

Скрипт будет исполнятся от пользователя perl. Он есть? у него до скрипта права есть?

> напрямую 11 * * * * /home/test.pl не работает.

Потому что, нет пользователя, от которого будет исполнятся скрипт, точнее тут указан только пользователь :)

man 5 crontab

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

8. "Debian напрямую не исполняет .pl скрипты"  
Сообщение от SeLarin email(??) on 16-Фев-08, 21:12 
Ну такой синтаксис только в системных кронтабах... А у человека скрипт даже из шелла не запускается.


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

9. "Debian напрямую не исполняет .pl скрипты"  
Сообщение от angra (ok) on 17-Фев-08, 22:33 
Начнем с азов, иначе у вас создастся представление о добавлении ./ как о неком шаманизме. Когда вы отдаете какую либо команду шеллу(командному интерпретатору, будет ли это линуксовый bash или досовый command.com не важно), то первым делом он вычленяет из нее первое слово и проверяет не является ли это внутренней командой. Если нет, то считает это именем файла, который нужно запустить. В случае если полный путь не указан, то файл ищется в путях перечисленных в переменной PATH. Вот тут мы имеем два больших отличия между dos/windows и  юниксовыми шеллами, которые очень смущают переходящих с одной платформы на другую.
Во-первых, в dos/windows текущий каталог считается всегда входящим в список PATH, более того он всегда проверяется первым. В юниксовых шеллах подобных глупых предположений не делается, если "."(текущий каталог, если вы еще не поняли) не присутствует в PATH, то поиска в текущем каталоге происходить не будет. Соответственно есть два варианта запуска программ из текущего каталога
1. добавить "." в PATH
2. указывать путь, а будет ли это полный путь от корня или ./ разницы нет.
Если же программу нужно запустить из cron или еще откуда-то, то всегда указывайте полный путь от корня, так как скорее всего ни текущий каталог, ни PATH вам не будут подконтрольны

Во-вторых, исполнимость файла в dos/windows определяется по расширению, а в юникс системах по execute bit  в правах на файл. Плюс для скриптов первой строкой должен быть полный путь к интерпретатору и должно быть право на чтение.

Теперь попробуйте выполнить ваш перловый скрипт указав полный путь к нему находясь в другом каталоге и из под другого пользователя(используйте su). Если все в порядке, то можно пробовать добавить в cron.

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

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

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




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

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