![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Webikus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.9.2010 Репутация: нет Всего: нет |
Здравствуйте!
Возникла такая проблема: Содержание одного из файлов perl скрипта произвольно изменяется или полностью исчезает. А причину этого установить не удалось. В связи с этим есть необходимость в регулярной замене этого текстового файла на его контрольный дубль прямо на хостинге. Т.е. нужно сделать так, чтобы скрипт(возможно с помощью cron) с периодичностью в 15 минут заменял на хостинге этот файл на соседний. Файлы с расширением .txd и находятся в папке /public_html/cgi-bin/ ... Например, чтобы файл text.txd автоматически заменялся каждые 15 минут на его контрольный дубль (text.txd), лежащий в соседней папке. И при этом права доступа к файлу не сбрасывались. Пожалуйста, подскажите возможные решения!? Если можно, то объясните поподробней.. Заранее благодарю! Это сообщение отредактировал(а) Webikus - 9.9.2010, 23:35 |
|||
|
||||
| DurRandir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 1 Всего: 17 |
Лучше решите проблему, почему оно исчезает. Варианта 3:
1. вы его сами удаляете, но случайно 2. кто-то его удаляет специально, на этом же сервере 3. кто-то его удаляет специально, через дыру в скрипте Проще всего проверить 1, потом 3, потом 2. 1,3 - ищите все команды удаления/открытия на запись, и пишите в лог из аргументы. Ищите, как они туда попали. Как вариант - если вы туда что-то пишете, то м.б. требуются блокировки на доступ к файлу, т.к. один поток его открывает, стирает, второй открывает, читает, первый пишет нормальные данные, закрывает, а второй теперь пишет пустые данные. |
|||
|
||||
| Webikus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.9.2010 Репутация: нет Всего: нет |
В том то и дело, что я так и не понял что там происходит.
А тут речь не о починке скрипта, а о возможности замены файла через определенное время. Я думаю, что это может пригодится не только в моем случае, а еще для многих задач. |
|||
|
||||
| ming |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 30.1.2009 Где: Новосибирск Репутация: нет Всего: 3 |
>>Пожалуйста, подскажите возможные решения!?
crontab: */15 * * * * cp /path/to/backup/text.txd /public_html/cgi-bin/ Это сообщение отредактировал(а) ming - 10.9.2010, 10:04 |
|||
|
||||
| DurRandir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 1 Всего: 17 |
У меня течёт кран, но я не буду его чинить, подскажите, чем лучше вычерпывать воду.
Это сообщение отредактировал(а) DurRandir - 10.9.2010, 10:21 |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: нет Всего: 18 |
DurRandir, может позвать пожарных?
|
|||
|
||||
| Webikus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.9.2010 Репутация: нет Всего: нет |
ming,
Большое спасибо, разобрался! В общем расскажу чуть поподробней для таких же ламеров как я) Сначала создаем в папке /public_html/cgi-bin/ пустой файл без расширения. Например: test (возможно понадобится выставить права доступа на него. В моем случае это 705) Дальше внутри пишем следующее: ----------------------- #!/bin/sh cp ~/public_html/cgi-bin/test.txt ~/public_html/test.txt ----------------------- Где #!/bin/sh - командный интерпретатор (может отличаться) cp - функция копирования ~ - путь до корня сайта /public_html/cgi-bin/test.txt - файл, который копируем /public_html/test.txt - путь в нужную папку (сам файл создавать не нужно) Потом по средствам админки хостинга назначаем задание на вызов этого скрипта с интервалом в 15 мин. */15 * * * * ~/public_html/cgi-bin/test В начале, для отладки, можно сделать копирование каждую минуту (ставим все звездочки) Ну и проверяем результат..! Вот нашел еще примеры по теме: Чтобы переместить файлы и каталоги используется команда «mv». Чтобы скопировать – команда «cp». Для перемещения всех файлов из одной директории в другую (в примере – перемещение из www/site1/public_html/ в www/site2/public_html), команда будет иметь следующие параметры: mv ~/www/site1/public_html/* ~/www/site2/public_html/ Для того, чтобы скопировать, а не перемещать данные файлы, следует использовать следующее выражение: cp -R ~/www/site1/public_html/ ~/www/site2/public_html/ Для переноса файла, например, index.html, следует использовать команду с параметрами: mv ~/www/site1/public_html/index.html ~/www/site2/public_html/index.html Также «mv» используется для переименования файла. Переименуем index.html в index.html.old: mv ~/www/site1/public_html/index.html ~/www/site1/public_html/index.html.old Это сообщение отредактировал(а) Webikus - 20.9.2010, 06:01 |
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |