- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, у меня возникла проблема с одним Perl скриптом.
Вкратце опишу суть проблемы – существует скрипт, первая часть которого собирает определенные файлы, архивирует их и выкладывает на FTP, а вторая часть забирает их оттуда и разархивирует, скрипт исполняется на локальной машине подключенной к инету. Скрипту уже пару лет, работал он исправно, дважды менялся хостер, в скрипте вносились определенные изменения в авторизации и он продолжал работать. Но тут сайт переехал на Мастерхост и возникла проблема, скрипт качает битые файлы, не хватает 1-2 байт и разархивировать их нельзя, причем при обыкновенной скачке файлов с FTP все нормально, т.е. глючит закачка по скрипту. И еще, особенность такая, ошибка закачки на определенных файлах, т.е. одни файлы качаются нормально, а другие нет, стираешь файлы на сервере, закачиваешь новые, и получаешь битые файлы, но уже другой набор, но этот набор стабилен до новой замены файлов. Файлов обычно 5-7, максимум 10.
Скрипт могу показать и здесь и в личке.
Не уверен, что Вам это пооможет, но все таки.
Была похожая проблема, но файлы забирались по HTTP. Тоже приходили битыми. У хостера какой-то косяк с mime types был. Дабы не морочить голову и себе и хостеру, просто сменил расширение у файлов. Т.е. у Вас в скрипт должен заархивировать файлы в archiv.tar. Измените скрипт, что бы получился archiv.zip например.
Не уверен, что Вам это пооможет, но все таки.
Была похожая проблема, но файлы забирались по HTTP. Тоже приходили битыми. У хостера какой-то косяк с mime types был. Дабы не морочить голову и себе и хостеру, просто сменил расширение у файлов. Т.е. у Вас в скрипт должен заархивировать файлы в archiv.tar. Измените скрипт, что бы получился archiv.zip например.
А в FTP какие mime types ???????????
Догагадки
1. Пассивный или активный режим...
2. Бинарный или текстовый режим передачи....
Если можно копию скрипта вышлете в личку...
Внизу приведен скрипт закачки файлов с сервера на локальную машину, исполняется скрипт на локальной машине, подключенной к инету. Есть одна догадка, до этого хостились у Корбины(не известно какой хостинг) и 1гб (Win хостинг) , а сейчас пробовал и Мастерхост (UNIX хостинг) и Infobox (вроде как тоже UNIX хостинг) , может в этом загвоздка? Но скрипт однозначно работает, частично, но работает, битыми приходят НЕ ВСЕ файлы.
Менять расширения файлов не пробовал.
$host_name='host.ru';
$login='логин';
$password='пасс';
$dir='/дир';
open L,">>getp_log";
$time=Time();
print L "$time -> getp\n";
print "Устанавливаем соединение с сервером\n";
$s1=Net::FTP->new($host_name,'Passive'=>1) or die "Соединение НЕ установлено, проверте наличие связи.";
print "Соединение установлено\n";
print "Авторизация\n";
$s1->login($login,$password) or die "err login";
$time=Time();
print L "$time -> login ok\n";
print "Авторизация пройдена\n\n";
$s1->cwd($dir) or die "err cwd";
system 'deltree /Y дир2\\*';
chdir 'дир2' or die 'err chdir';
print "\n";
@ls=$s1->dir() or $s1->quit() and die "err ls";
foreach (@ls)
{
s/^.*\s+(.+)$/$1/;
if(/\.bz2$/)
{
print "Скачиваем $_\n";
$s1->get($_) or print "err get $_";
$time=Time();
print L "$time -> $_ ok\n";
++$i;
}
}
print "\nЗакрываем соединение\n";
$s1->quit() or print "err quit";
$time=Time();
print L "$time -> quit ok\n";
print "Соединение закрыто\n\n";
chdir '..';
system 'copy /Y obpz\\*.bz2 obp';
system 'bzip2 -dvf obp\\*.bz2';
print "\n\nСКАЧЕНО $i ФАЙЛОВ"; <STDIN>;
#==============================sub===================================
sub Time
{
my($y,$m,$d,$h,$mi,$s)=reverse((localtime)[0..5]);
$y+=1900; ++$m;
return sprintf "%04s/%02s/%02s %02s:%02s:%02s", ($y,$m,$d,$h,$mi,$s);
}
В предыдущем сообщении, я немного прогнал :)
Ну, как вариант, после
print L "$time -> login ok\n";
Вставить -
$s1->binary;
Вставить -
$s1->binary;
Именно то что нужно!
СПАСИБО Вам огромное. Ник соответствует на 100% ;)