Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по sh

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Tox
Отправлено: 28 Августа, 2012 - 17:45:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011  
Откуда: Россия


Помог: 0 раз(а)




Суть в том, что скрипт php (в кодировке UTF8 без Bom) автоматически генерирует файл .sh, который потом отсылает на другой сервер через ssh.
PHP:
скопировать код в буфер обмена
  1. $sh="!/bin/sh
  2. sleep 1
  3. cd $row[dir]";
  4.   ssh2_exec($connection, "echo '".$sh."'>".$row['dir'].".sh");
  5.   ssh2_exec($connection, 'chmod 777 '.$row['dir'].'.sh');

Все пишется прекрасно, но не запускается:
-bash: ./dir_1.sh: /bin/sh^M: bad interpreter: No such file or directory
Там же лежат такие же скрипты, они работают, а этот нет. Хостер сказал, что проблема в Bom, надо отключить. Но я-то без него [BOM] пишу.
Как зафиксить?


-----
In Console We Trust. Code hard. Or die.
 
 Top
EuGen Администратор
Отправлено: 28 Августа, 2012 - 18:18:27
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Tox пишет:
^M

Tox пишет:
Хостер сказал, что проблема в Bom

Плохой хостер. Этот "^M" есть не что иное, как представление Win-символа "\r". Используйте переводы строк UNIX-формата, то есть просто \n (сделать можно в любом редакторе, том же notepad++)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Tox
Отправлено: 28 Августа, 2012 - 18:20:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011  
Откуда: Россия


Помог: 0 раз(а)




EuGen
то есть так сделать
PHP:
скопировать код в буфер обмена
  1. $sh="!/bin/sh \n sleep 1 \n cd $row[dir]";

?


-----
In Console We Trust. Code hard. Or die.
 
 Top
EuGen Администратор
Отправлено: 28 Августа, 2012 - 18:22:01
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Tox
[cut] не увидел сразу. Верно. Используйте \n


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Tox
Отправлено: 28 Августа, 2012 - 18:30:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011  
Откуда: Россия


Помог: 0 раз(а)




EuGen
Спасибо) заработало


-----
In Console We Trust. Code hard. Or die.
 
 Top
Tox
Отправлено: 29 Августа, 2012 - 12:40:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011  
Откуда: Россия


Помог: 0 раз(а)




Сегодня такая проблема обнаружилась: скрипт от моего юзера не запускается, а только от рута. Права 777, владелец - мой юзер.
Скрипт не менял, вчера все работало. Единственное, что меня смущает - хострер запускал его от рута. На локальной машине все пашет, что самое интересное.


-----
In Console We Trust. Code hard. Or die.
 
 Top
EuGen Администратор
Отправлено: 29 Августа, 2012 - 13:23:09
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Tox пишет:
$connection

Как формируется? От правильного ли пользователя выполняется скрипт? Если да, то достаточно ли прав у этого пользователя на все проводимые операции?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Tox
Отправлено: 29 Августа, 2012 - 14:17:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011  
Откуда: Россия


Помог: 0 раз(а)




Тем, у кого такая же проблема появится:
смело меняем владельца файлов и папок:
chown -hR user:group /path/
Ибо, там, где-то в глубине файлов и папок появится 1-2 файла, которые могут принадлежать руту. Да, ситуация бредовая, я тоже так думал, что у меня-то такого не произойдет, однако, бывает.


-----
In Console We Trust. Code hard. Or die.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Администрирование *nix »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB