внимание грабли
Я подозреваю что я отнюдь не единственный наступивший на них, так как на данном форуме встречал описание похожих ситуаций.
Внешние признаки: все сделано по инструкции, но ничего не работает (или работает но не так), при этом все необходимые файлы существуют там где должны и содержат то что надо...
Например: cron запущен, висит в топе, задания исправно попадают в соответствующую папку, но НЕ ВЫПОЛНЯЮТСЯ…
В моем случае эти грабли возникли следующим образом: При подключении HDD я частично следовал инструкции о настройке с нуля (частично потому, что она местами устарела) и включил FTP доступ к нему (дабы он легко и непринужденно автоопознался и автопримаунтился). Так как FTPшник заработал, то редактировать файлы через телнет показалось мне менее удобно, нежели штатными редакторами Большого Брата… и я отредактировал файлы на нем (скопипастил из инструкции). После чего сохранил по FTP на роутерный хард. Проделав это я выполнил остальные операции из инструкции и… НИЧЕГО НЕ ЗАРАБОТАЛО!
Проверку наличия и содержимого файлов я тоже выполнял по FTP.
Разбор полетов показал что во всем этом действе крылся маааленький подвох. Мы все затвердили с детства, что кодировка KOI8 отличается от виндастой только расположением русских букв в таблице символов. НО! Есть еще одно очень маленькое отличие. Дело в том, что в ASCII кодировке равно как и в унаследовавшей это свойство виндусястой, знак перевода строки кодируется двумя символами с hex кодамим 0D0A, а в KOI8 одним символом 0A (если память мне не изменяет). Таким образом в конце каждой написанной в винде строчки, при прочтении роутером, возникает поразитный символ с кодом 0D, который и портит жизнь интерпритатору. Если память мне опять не изменяет то где то на форуме, кто то (а кабы даже не Олег) писал что первая строчка .sh скрипта ОБЯЗАТЕЛЬНО должна выглядеть так "#!/bin/sh" без всяких значков на конце.
Я обнаружил этот глюк совершенно случайно, когда от безысходности просматривал необходимый для работы cron файл /opt/bin/run-parts мидвай коммандером через телнет. Его первая строка выглядела следующим образом: "#!/bin/sh^M". Как я понимаю "^M" в понимании коммандеровского редактора, олицетворяет собой символ с кодом 0D. Таким же символом были увенчаны все остальные строки в этом файле… после удаления этих символов все неожиданно заработало.
---------------------
С наилучшими пожеланиями,
PITer