LINUX.ORG.RU

Сообщения Jalart

 

Автоматический многократный запуск из консоли

Форум — Admin

Здравствуйте.

Есть команда выкачки видео с Ютуба youtube-dl -o’VIDEO.%(ext)s’ -f bestvideo+bestaudio –write-auto-sub –sub-lang ru –convert-subs srt https://youtu.be/video

Периодически она аварийно завершается с сообщением Network is unreachable

В ходе работ утилита генерирует вывод типа [youtube] itCpdEXwp0k: Downloading webpage WARNING: Requested formats are incompatible for merge and will be merged into mkv. [download] Destination: TST.f136.mp4 [download] 100% of 24.04MiB in 00:10 [download] Destination: TST.f251.webm [download] 100% of 1.96MiB in 00:00 [ffmpeg] Merging formats into «TST.mkv» Deleting original file TST.f136.mp4 (pass -k to keep) Deleting original file TST.f251.webm (pass -k to keep) [ffmpeg] There aren’t any subtitles to convert

Возможно ли как-то запускать команду с циклом, вида: пока не получу полное видео, перезапускать команду снова и снова?

 

Jalart
()

Контроль сбоев отправки почты

Форум — Admin

Здравствуйте.

Нужно как-то контролировать сбои отправки почты, вида: «user does not exist», «Unrouteable address», «Mailbox size limit exceeded» и т.п.

Ситуация: Посетитель сайта регистрируется, указывает емайл для связи, на него потом приходит письмо с данными регистрации для входа в ЛК. В качестве обратного адреса указывается служебный адрес. По логам msmtp все уходит нормально. Но если адрес не существует, переполнен или иная ошибка, то на служебный адрес приходит ответ с сообщением об ошибке.

Виртуальная машина с сайтом одна, почта на другой виртуальной машине и они никак не связаны друг с другом.

Есть ли какое-то решение для виртуальной машины с сайтом, чтобы в ее логах фиксировались сбои отправки почты? Или чем можно из консоли с виртмашины с сайтом «дергать» служебный ящик и читать / парсить почту и писать в лог по итогам?

Служебный адрес - ящик типа IMAP.

А то получается - адрес пользователя есть, письмо на него отправлено, а вот что уже с этим адресом произошло - непонятно. В идеале - какой-то лог, чтобы потом на php парсить и формировать список сбойных адресов.

Примечание - это не спам-рассылка, а проект с доступом к ЛК через данные, отсылаемые на почту.

 , ,

Jalart
()

Не работает команда при ротации логов sphinx

Форум — Admin

Приветствую.

Настроил вывод логов sphinx в отдельный файл перед ротацией логов для дальнейшего анализа SEO-шником:

cat /var/log/sphinx/query.log | awk '{print $1" «$2» «$3» «$5»;«$4»;«$13»;«$14» «$15» «$16» «$17» «$18}' | grep 'bitrix' >/www/sitename.ru/tmp/logs/`date +%d-%m-%Y_%H:%M:%S`.csv

Но в итоге в папке у меня файлы с нулевым объемом. И ни одной строчки.

Можете подсказать, что я не так сделал?

# cat /etc/logrotate.d/sphinx 
/var/log/sphinx/*.log {
       daily
       rotate 180
       copytruncate
       delaycompress
       compress
       notifempty
       missingok
       prerotate
           cat /var/log/sphinx/query.log | awk '{print $1" "$2" "$3" "$5";"$4";"$13";"$14" "$15" "$16" "$17" "$18}' | grep 'bitrix' >/www/sitename.ru/tmp/logs/`date +%d-%m-%Y_%H:%M:%S`.csv
       endscript
}

 , ,

Jalart
()

Не удается отключить https для www.sitename.ru

Форум — General

Приветствую.

Есть сайт, для которого надо отключить https и переключить на http. Зачем - это не ко мне. Сайт на базе Битрикс, в виртмашине Битрикса. Через меню управления виртмашиной https отключен, в админке перенаправление на https отключено. Также закомментарены настройки для ssl.

Удалось добиться нормального открытия http://sitename.ru. А вот при открытии http://www.sitename.ru. выдается сообщение об ошибке: «404 Not Found. nginx/1.10.1» и постоянно норовит на https переключиться.

Подскажите, пожалуйста, что еще можно настроить или поправить. Если надо, могу предоставить еще конфиги.

P.S. К сожалению, что-то у меня lorcode не работает.

Владимир.

nginx.conf


user bitrix;
worker_processes 8;

error_log /var/log/nginx/error.log crit;

pid /var/run/nginx.pid;
worker_rlimit_nofile 20480;

events {
	use epoll;
	worker_connections  10240;
	multi_accept on;
}

http {

	include /etc/nginx/mime.types;
	default_type application/force-download;
	server_names_hash_bucket_size 128;

	# Description of supported access log formats
	log_format main	'$remote_addr - $remote_user [$time_local - $upstream_response_time] '
                  '$status "$request" $body_bytes_sent '
                  '"$http_referer" "$http_user_agent" "$http_x_forwarded_for"';

	log_format common '$remote_addr - - [$time_local - $upstream_response_time] '
                    '"$request" $status $bytes_sent '
                    '"$http_referer" "$http_user_agent" $msec';

  log_format balancer '$remote_addr - $remote_user [$time_iso8601] "$host" '
                    '"$request" $status $body_bytes_sent "schema: $scheme" '
                    '"$http_referer" "$http_user_agent" "$http_x_forwarded_for" '
                    '"$request_length" : "$request_time" -> $upstream_response_time';

	log_format debug '$upstream_response_time,"$time_local","$remote_addr","$request",$status,$body_bytes_sent';

	#access_log /var/log/nginx/access.log main buffer=16k;

	# Caches information about open FDs, freqently accessed files.
	open_file_cache max=200000 inactive=20s; 
	open_file_cache_valid 30s; 
	open_file_cache_min_uses 2;
	open_file_cache_errors on;


	# upload default maps
	include bx/maps/*.conf;

	sendfile			on;
	tcp_nopush			on;
	tcp_nodelay			on;

	# Timeout for keep-alive connections. Server will close connections after this time.
	keepalive_timeout 30;
	# Number of requests a client can make over the keep-alive connection.
	keepalive_requests 1000;

	# Allow the server to close the connection after a client stops responding. 
	reset_timedout_connection on;

	# Send the client a "request timed out" if the body is not loaded by this time.
	client_body_timeout 10;
	# If the client stops reading data, free up the stale client connection after this much time.
	send_timeout 2;

	client_max_body_size		1024m;
	client_body_buffer_size		4m;

	# Parameters for back-end request proxy
	proxy_connect_timeout		600;
	proxy_send_timeout		600;
	proxy_read_timeout		600;
	proxy_buffer_size		64k;
	proxy_buffers			8 256k;
	proxy_busy_buffers_size		256k;
	proxy_temp_file_write_size	10m;

	# Assign default error handlers
	error_page 500 502 503 504 /500.html;
	error_page 404 = /404.html;


	# Compression.
	gzip on;
	gzip_min_length 10240;
	gzip_proxied expired no-cache no-store private auth;
	gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
	gzip_disable "msie6";

	# Content compression parameters
	#gzip				on;
	#gzip_proxied			any;
	#gzip_static			on;
	#gzip_http_version		1.0;
	#gzip_types			application/x-javascript application/javascript text/css;

	add_header "X-Content-Type-Options" "nosniff";
	add_header X-Frame-Options SAMEORIGIN;
	# add_header X-Frame-Options ALLOW-FROM https://analytics.google.com;

	# Set nginx-push-stream-module common parameters
	include bx/conf/im_settings.conf;


	# Set default website
	include bx/site_enabled/*.conf;

	# Set additional websites
	include bx/site_ext_enabled/*.conf;

	#server {
	#	if ($http_referer !~* ^($|http://|https://) ){
     	#	return 403;
	#	}

	server {
    	listen *:80;
   	server_name www.sitename.ru;
	}

}

bx/site_enabled/s1.conf


	# Default website
	server {

		listen 80 default_server;
		server_name _;
		server_name_in_redirect off;

		proxy_set_header	X-Real-IP        $remote_addr;
		proxy_set_header	X-Forwarded-For  $proxy_add_x_forwarded_for;
		proxy_set_header	Host $host;

		set $proxyserver	"http://127.0.0.1:8888";
		set $docroot		"/home/bitrix/www";

		index index.php;
		root /home/bitrix/www;

# 13.07.2017
		# Redirect to ssl if need
#		if (-f /home/bitrix/www/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }
#		if ($host = 'www.sitename.ru' ) {
# 		         rewrite  ^/(.*)$  https://sitename.ru/$1  permanent;
#		}

#        if ($host = 'https://www.sitename.ru' ) {
#                 rewrite  ^/(.*)$  https://sitename.ru/$1  permanent;
#        }


#        if ($host = 'http://www.sitename.ru' ) {
#                 rewrite  ^/(.*)$  http://sitename.ru/$1  permanent;
#        }

		# Include parameters common to all websites
		include bx/conf/bitrix.conf;

		# Include server monitoring locations
		include bx/server_monitor.conf;
	}

 ,

Jalart
()

Как для rsync задать более 1 папки исключения?

Форум — Desktop

Приветствую.

Этой командой /usr/bin/rsync -artuvOq --delete-before --exclude .git /site/from_folder/ /site/to_folder/ 2>rsync.error.log && cat rsync.error.log синхронизирую папки, удаляя репозиторий.

Но как добавить в список исключений еще 2-3 папки? Пробовал перечислять через пробел и запятую - не работает.

Подскажите, пожалуйста, что я не так делаю.

 ,

Jalart
()

Как настроить лимиты на количество файлов для консольного php-скрипта?

Форум — Web-development

Приветствую.

Работаю над консольным php-скриптом, запускаемым по cron. Он переиндексирует сайт на базе Битрикс. Есть папка images, которая не участвует в поиске, но, тем не менее, она сканируется, в которой примерно 16158 папок с 3-4 подпапками в каждой. При этом количестве папок скрипт просто виснет. Если оставить около 8т папок, то скрипт переиндексации корректно отрабатывает.

Такое впечатление, что где-то надо увеличить лимиты на количество файлов, только вот где - непонятно.

Подскажите, пожалуйста, куда копать.

Владимир.

 , , ,

Jalart
()

Локальный поиск на мобильном диске по файлам скачанного сайта под Ubuntu + pdf + djvu + etc...

Форум — General

Приветствую.

Задался вопросом создания локальной копии stackoverflow, чтобы была справочная база с возможностью поиска по ней.

В принципе, можно wget-ом скачать сайт, но что использовать в качестве локального поиска?

В идеале должно быть примерно так: На мобильном диске лежит скачанный сайт и его индексная база. При подключении винта к ПК с KUbuntu запускаю некую программу, указав ей путь к индексной базе. В ней же делаю поиск по ключевым словам - на выходе список ссылок скачанного сайта.

Есть ли у кого практический опыт решения такой задачи? Какая программа подойдет для локального поиска? Если возможно, нужна еще индексация txt, pdf, djvu, fb2. Или есть еще какие-то варианты?

Владимир.

 , , ,

Jalart
()

Sphinx:Не ищет по слову «очки»

Форум — Web-development

Приветствую.

Сайт на базе Битрикс, подключен Sphinx 2.2.10.

Поиск, в целом, работает корректно.

Но возникла проблема со словом «очки» - не ищет, хоть тресни! Если пробовать вариации слова: «очку» «очкина» «очкину» «очкины» «очкино» «очки» «очмо» «очкиа» «очкин», то не ищется еще и «очку».

Проверялось в MySQL-консоли sphinx.

Что можно настроить, чтобы искалось по этому слову?

( читать дальше... )

 , ,

Jalart
()

Не работает авто-hook от одного пользователя в репозиторий под другим пользователем

Форум — Development

Приветствую.

Просьба помочь разобраться с корректностью настройки hook из одного репозитория в другой.

Есть пользователи: git:git и support:support.

У пользователя git задана домашняя папка /home/git/, в которой лежат подпапки вида: support.git, dev.git и т.п. Каждая подпапка содержит индекс репозитория соответствующих пользователей, support, например.

У пользователя support задана домашняя папка: /home/support/public_html/www/ В ней расположен git-репозиторий. В эту папку выкладываются изменения. Потом, в ручном режиме, этот репозиторий push-ится в папку /home/git/support/

Решил все автоматизировать - для репозитория support на sh написал hook, который должен сразу после коммита push-ить все изменения в индекс репозитория.

Но возникла проблема с правами доступа. Сейчас: support:support / 775(folder) / 664 (files) >>> /home/support/public_html/www/

git:git / 775(folder) / 664 (folder) / chmod g+s >>> /home/git/support.git/

$ id support uid=906(support) gid=906(support) группы=906(support),909(git)

При push-е из репозитория support в репозиторий support.git выдается сообщение вида:

$ git push /home/git/support.git/ master Counting objects: 5, done. Delta compression using up to 24 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 287 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: error: insufficient permission for adding an object to repository database ./objects remote: fatal: failed to write object error: unpack failed: unpack-objects abnormal exit To /home/git/support.git/ ! [remote rejected] master -> master (unpacker error) error: failed to push some refs to '/home/git/support.git/'

Если я делаю chgrp support -R /home/git/support.git/, то hook отрабатывает нормально.

Но тогда получается, что пользователь support имеет полный доступ к индексу репозитория.

Мне надо, чтобы на основном репозитории мог работать пользователь support:support, спокойно push-ил через hook в автоматическом режиме в индекс репозитория, который находится под управлением git:git.

Так вообще возможно или я не совсем корректно организовал работу репозиториев?

 , , ,

Jalart
()

SSH-upload под username присваивает пользователя root файлу

Форум — General

Приветствую.

На сервере в системе заведен пользователь username:username c id=1008 для доступа по ssh. Также для доступа по ftp заведен пользователь с тем же именем и id (/etc/ftpd.passwd).

Если файл редактируется в PhpStorm и закачивается по ftp, то пользователь у закачанного файла username.

Но стоит только загрузить тот же файл посредством команды push (git) из среды PhpStorm, так у этого же файла пользователь становится root.

Получается, что загружаемый файл присваивается пользователю root, загружаясь через ssh под акакунтом username.

Как это исправить?

Владимир.

 , ,

Jalart
()

Сдвинуть время ротации логов nginx & apache

Форум — General

Приветствую.

На сервере запущена ротация логов (logrotate >>> nginx & apache).

Но логи ротируются в 3 ночи с хвостиком по МСК.

date на сервере показывает корректное время. В настройках apache и nginx временные настройки отсутствуют.

Подскажите, пожалуйста, где править временной сдвиг, чтобы логи ротировались в 00:01, т.к. эти выпавшие 3 часа из логов текущего дня важны для анализа.

Если нужно, могу приложить конфиги, которые надо проанализировать.

 , ,

Jalart
()

Корректная настройка прав доступа пользователя для вебсайта

Форум — Admin

Есть несколько настроенных и работающих сайтов на базе Битрикс: devtest.ru и development.ru. Для них в системе создавались пользователи devtest и development соответственно. На сайте devtest.ru не удается закачать изображение напрямую с компьютера (т.е. извне) в админке сайта. На development.ru делаю то же самое и все работает.

Насколько я понимаю, проблема в правах доступа. Вроде все настроил для devtest по аналогии с development, но проблему пока решить не удается.

Создавал пользователя devtest, указывал его владельцем для папки сайта devtest.ru, сделал на время разбирательств chmod 777 на эту же папку, для apach&nginx добавил группу devtest.

Можете подсказать, что еще бы посмотреть в настройках по пользователю development, чтобы скопировать для devtest? Или надо что-то рестартить после правок пользователей?

Есть пользователи apache:apache nginx:nginx development:development devtest:devtest

# id apache uid=48(apache) gid=48(apache) группы=48(apache),1009(development),1005(devtest)

# id nginx uid=995(nginx) gid=993(nginx) группы=993(nginx),1009(development),1005(devtest)

# id devtest uid=1005(devtest) gid=1005(devtest) группы=1005(devtest)

# id development uid=1009(development) gid=1009(development) группы=1009(development)

# ls -lahi /var/www/ 14811613 drwxrwxrwx 10 development development 4,0K июл 21 10:55 development.ru 14590704 drwxrwxrwx 9 devtest devtest 4,0K июл 20 20:27 devtest.ru

 , ,

Jalart
()

Munin: Мониторинг нескольких виртуальных хостов:Как?

Форум — General

Приветствую.

Есть сервер, на нем крутится вебсервер (apache, nginx, mysql) с несколькими виртуальными сайтами site1, site2, .... Также установлен Munin, мониторятся основные параметры сервера.

Можно ли как-то настроить Munin так, чтобы он выдавал статистику apache, nginx и mysql для каждого виртуального сайта отдельно, чтобы понимать, где начались проблемы с перегрузкой?

Просьба подсказать, по каким критериям копать. Или есть какие-то альтернативные решения?

По mysql есть пока только идея: на базе одного mysql-сервера запустить несколько демонов, по одному на каждый виртуальный сайт. И уже мониторить каждого демона отдельно.

Заранее спасибо.

 ,

Jalart
()

Оптимизация производительности MySQL

Форум — Admin

Приветствую.

Переношу сайт на Битрикс с хостера на офисный сервер. my.cnf более-менее совпадает, БД одного и того же типа, крутится на ssd.

Но на сервере хостера по результатам Монитора производительности реальные значения БД (чтение/запись/изменение) превышают эталонные в 2-2.5 раза. На офисном сервере - реальные значения БД (чтение/запись/изменение) превышают эталонные в 0.1-0.8 раза.

Не очень понятно, что еще можно проверить, чтобы улучшить производительность MySQL на офисном сервере?

Пересобрать MySQL с библиотеками какими или что-то еще настроить, кроме синхронизации файла my.cnf?

Что посоветуете еще проверить?

Владимир.

 , ,

Jalart
()

Как получить корректные результаты проверки целостности zip-архива для bash-скрипта?

Форум — Development

Здравствуйте.

Косманда unzip -t cia.zip | echo $? 0

Для нулевого zip-архива эта команда возвращает 0. Как же проверить успешность загрузки zip-файла посредством wget и целостность скачанного архива?

Владимир.

 , ,

Jalart
()

Как для «tar -czf archive.tar.gz /folder_name/» получить результат выполнения?

Форум — Development

Здравствуйте.

Возникла надобность заархивировать папку с файлами архиватором tar посредством sh-скрипта.

В зависимости от успешности/неуспешности архивирования должен отработать тот или иной кусок кода sh-скрипта.

Как получить ответ от архиватора? Или что посмотреть/почитать по этой тематике?

Владимир.

 , ,

Jalart
()

Как ограничить вывод результатов анализа логов?

Форум — General

Для анализа активности IP-адресов на сайте в консоли использую следующую команду:

cat /var/logs/sitename.access.log | grep '13:55' | awk '{print $1}' | sort -k 1,1M -k 2n | uniq -c | sort -nr

Но выводятся все отсортированные по убыванию строки. А нужно вывести первые 10 строк результатов сортировки и остановиться. head или tail не подходят, т.к. нужно пропарсить весь файл лога.

Конечно, можно все загнать в скрипт (сохранять во временный файл и применять к нему head/tail), но нужна оперативность работы прямо в консоли, чтобы подставляя значения, получать результат сразу, без лишних этапов редактирования скрипта и лишнего мусора.

 , ,

Jalart
()

RSS подписка на новые темы