Не работала правая клавиша на тачпаде

Оказалось частая проблема.

Потому что щас не тачпады а кликпады.

решение простое:

sudo apt install xserver-xorg-input-synaptics-hwe-18.04

ребут.

конфиг тут:/usr/share/X11/xorg.conf.d/70-synaptics.conf

добавить Option «ClickPad» «1»

Section «InputClass»
Identifier «Default clickpad buttons»
MatchDriver «synaptics»
Option «ClickPad» «1»
Option «SoftButtonAreas» «50% 0 82% 0 0 0 0 0»
Option «SecondarySoftButtonAreas» «58% 0 0 15% 42% 58% 0 15%»
EndSection

Рубрика: Новости, Общее | Оставить комментарий

Запуск игр HL2 Portal2 Portal mel на Linux

были сложности но все решается просто.

нужно удалить библиотеки которые идут с играми, т.к. они старые я для новых систем не подходят.

мне помогло:
find ~/ -name libstdc++.so.6 -print -delete

а также следующие библиотека аналогичным способом.

libgcc_s.so.1
libxcb.so.1

Рубрика: Общее | Оставить комментарий

ipmi сервера lenovo настройка и команды

LAN Configuration

The first IPMI LAN channel will now be configured. Thereby, the configured IP address can be accessed at the first LAN port for the server. For the default gateway, both its IP address and MAC address must be configured.

[root@sr2500 ~]# ipmitool lan set 1 ipsrc static

[root@sr2500 ~]# ipmitool lan set 1 ipaddr 192.168.1.211

Setting LAN IP Address to 192.168.1.211

[root@sr2500 ~]# ipmitool lan set 1 netmask 255.255.255.0

Setting LAN Subnet Mask to 255.255.255.0

[root@sr2500 ~]# ipmitool lan set 1 defgw ipaddr 192.168.1.254

Setting LAN Default Gateway IP to 192.168.1.254

[root@sr2500 ~]# ipmitool lan set 1 defgw macaddr 00:0e:0c:aa:8e:13

Setting LAN Default Gateway MAC to 00:0e:0c:aa:8e:13

[root@sr2500 ~]# ipmitool lan set 1 arp respond on

Enabling BMC-generated ARP responses

[root@sr2500 ~]# ipmitool lan set 1 auth ADMIN MD5

[root@sr2500 ~]# ipmitool lan set 1 access on

When configuring LANs, older versions of ipmitool would not automatically reset Set in Progress to Set Complete. This can be done manually using a raw command (regarding this, see http://www.mail-archive.com/ipmitool-devel@lists.sourceforge.net/msg00095.html)

[root@sr2500 ~]# ipmitool lan print 1

Set in Progress         : Set In Progress

[…]

[root@sr2500 ~]# ipmitool raw 0x0c 1 1 0 0

ipmitool lan print 1

You can check the configuration using ipmitool lan print 1.

[root@sr2500 ~]# ipmitool lan print 1

Set in Progress         : Set Complete

Auth Type Support       : NONE MD5 PASSWORD

Auth Type Enable        : Callback :

                        : User     :

                        : Operator :

                        : Admin    : MD5

                        : OEM      :

IP Address Source       : Static Address

IP Address              : 192.168.1.211

Subnet Mask             : 255.255.255.0

MAC Address             : 00:0e:0c:ea:92:a2

SNMP Community String   :

IP Header               : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10

BMC ARP Control         : ARP Responses Enabled, Gratuitous ARP Disabled

Gratituous ARP Intrvl   : 2.0 seconds

Default Gateway IP      : 192.168.1.254

Default Gateway MAC     : 00:0e:0c:aa:8e:13

Backup Gateway IP       : 0.0.0.0

Backup Gateway MAC      : 00:00:00:00:00:00

RMCP+ Cipher Suites     : None

Cipher Suite Priv Max   : XXXXXXXXXXXXXXX

                        :     X=Cipher Suite Unused

                        :     c=CALLBACK

                        :     u=USER

                        :     o=OPERATOR

                        :     a=ADMIN

                        :     O=OEM

[root@sr2500 ~]#

User Configuration

A user will now be setup with admin rights.

[root@sr2500 ~]# ipmitool user set name 2 admin

[root@sr2500 ~]# ipmitool user set password 2

Password for user 2:

Password for user 2:

[root@sr2500 ~]# ipmitool channel setaccess 1 2 link=on ipmi=on callin=on privilege=4

[root@sr2500 ~]# ipmitool user enable 2

[root@sr2500 ~]#

The server can now be controlled by this user as described in Using ipmitool for Remote Control of Servers.

Users at the USER Privilege Level

If a user should only be used for querying sensor data, a custom privilege level can be setup for that. This user then has no rights for activating or deactivating the server, for example. A user named monitor will be created for this in the following example:

[root@sr2500 ~]# ipmitool user set name 3 monitor

[root@sr2500 ~]# ipmitool user set password 3

Password for user 3:

Password for user 3:

[root@sr2500 ~]# ipmitool channel setaccess 1 3 link=on ipmi=on callin=on privilege=2

[root@sr2500 ~]# ipmitool user enable 3

[root@sr2500 ~]# ipmitool channel getaccess 1 3

Maximum User IDs     : 15

Enabled User IDs     : 2

User ID              : 3

User Name            : monitor

Fixed Name           : No

Access Available     : call-in / callback

Link Authentication  : enabled

IPMI Messaging       : enabled

Privilege Level      : USER

[root@sr2500 ~]#

The importance of the various privilege numbers will be displayed when ipmitool channel is called without any additional parameters:

[root@sr2500 ~]# ipmitool channel

Channel Commands: authcap   <channel number> <max privilege>

                  getaccess <channel number> [user id]

                  setaccess <channel number> <user id> [callin=on|off] [ipmi=on|off] [link=on|off] [privilege=level]

                  info      [channel number]

                  getciphers <ipmi | sol> [channel]

Possible privilege levels are:

   1   Callback level

   2   User level

   3   Operator level

   4   Administrator level

   5   OEM Proprietary level

  15   No access

[root@sr2500 ~]#

The user just created (named ‘monitor’) has been assigned the USER privilege level. So that LAN access is allowed for this user, you must activate MD5 authentication for LAN access for this user group (USER privilege level):

[root@sr2500 ~]# ipmitool lan set 1 auth USER MD5

[root@sr2500 ~]#

MD5 will now also be listed as User Auth Type Enable for LAN Channel 1:

[root@sr2500 ~]# ipmitool lan print 1

Set in Progress         : Set Complete

Auth Type Support       : NONE MD5 PASSWORD

Auth Type Enable        : Callback :

                        : User     : MD5

                        : Operator :

                        : Admin    : MD5

                        : OEM      :

IP Address Source       : Static Address

IP Address              : 192.168.1.211

Subnet Mask             : 255.255.255.0

MAC Address             : 00:0e:0c:ea:92:a2

SNMP Community String   :

IP Header               : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10

BMC ARP Control         : ARP Responses Enabled, Gratuitous ARP Disabled

Gratituous ARP Intrvl   : 2.0 seconds

Default Gateway IP      : 192.168.1.254

Default Gateway MAC     : 00:0e:0c:aa:8e:13

Backup Gateway IP       : 0.0.0.0

Backup Gateway MAC      : 00:00:00:00:00:00

RMCP+ Cipher Suites     : 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14

Cipher Suite Priv Max   : XXXXXXXXXXXXXXX

                        :     X=Cipher Suite Unused

                        :     c=CALLBACK

                        :     u=USER

                        :     o=OPERATOR

                        :     a=ADMIN

                        :     O=OEM

Рубрика: Lenovo, Новости, Общее | Оставить комментарий

Удаление тиринга в минте

Удаляем тиринг AMD Radeon в GNU/Linux

Уже достаточно давно проблема с драйверами в операционных системах GNU/Linux ушла в небытие. Ядро обеспечивает поддержку практически любого оборудования. И вот, настал тот момент, когда поддержка видеокарт AMD является более необходимой задачей для энтузиастов, а не их разработчиков, и теперь свободный драйвер является лучшим решением для «красных».

Система может именовать драйвер по-другому. Например, консольная утилита inxi называет его amdgpu, ati или radeon (обычно, устаревшие). Так вот, бывает, что при просмотре видео может наблюдаться искажение картинки по-горизонтали. Это и есть тиринг. Чтобы избавиться от него:

  1. Откройте терминал.
  2. Откройте конфигурационный файл (в зависимости от названия драйвера) для редактирования, например, с помощью редактора nano.
    sudo nano /usr/share/X11/xorg.conf.d/10-amdgpu.conf
  3. Выше строки EndSection добавьте
    Option "TearFree" "on"
  4. Перезагрузите компьютер.

После этого тиринг видео должен исчезнуть.

Я все понят не могу.ю почему производитель не сделал этого?

Рубрика: Mint | Оставить комментарий

Запуск двух нод для web кластера nginx

запуск двух нод для web кластера nginx (сам 
прокси-балансировщик в отдельной статье)

устанавливаем docker
#yum install docker

включаем и стартуем сервис:
#systemctl enable docker.service
#systemctl start docker.service

Для начала создадим под этот проект папку и заходим в нее:
#mkdir /site (папка может быть названа как угодно)
#cd /site

Дальше строим структуру папок таким образом:
#mkdir mysql nginx php

Создаем понятную среду для nginx:
#cd nginx
#mkdir core html logs www
Создадим конфигурационный файл для Nginx:
#cd /core
#mkdir node1 node2
в каждой директории создаём по файлу test.conf
содержание:

 server {
 listen 81; ## listen for ipv4; this line is default and implied
 root /var/www/html/test.ru;
  index index.php index.html index.htm;
 # Make site accessible from http://localhost/
  server_name test.ru;
 Disable sendfile as per https://docs.vagrantup.com/v2/synced-folders/virtualbox.html
 sendfile off;
 Add stdout logging
 error_log /var/log/nginx/test.ru-error.log info;
 access_log /var/log/nginx/test.ru-access.log;
 Add option for x-forward-for (real ip when behind elb)
 real_ip_header X-Forwarded-For;
 set_real_ip_from 172.16.0.0/12;
 block access to sensitive information about git
 location /.git {
 deny all;
 return 403;
 }
location / {
 First attempt to serve request as file, then
 as directory, then fall back to index.html
 try_files $uri $uri/ =404;
 }
 error_page 404
 /404.html;
 location = /404.html {
 root /var/www/errors;
 internal;
              }
 location ^~ /sad.svg {
 alias /var/www/errors/sad.svg;
 access_log off;
           }
 location ^~ /twitter.svg {
 alias /var/www/errors/twitter.svg;
 access_log off;
 }
 location ^~ /gitlab.svg {
 alias /var/www/errors/gitlab.svg;
 access_log off;
 }
 pass the PHP scripts to FastCGI server listening on socket
 #
 location ~ .php$ {
 try_files $uri =404;
 fastcgi_split_path_info ^(.+.php)(/.+)$;
                                                                                                                                                                                                                              fastcgi_pass
 unix:/var/run/php-fpm.sock;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_param SCRIPT_NAME $fastcgi_script_name;
 fastcgi_index index.php;
# fastcgi_param GEOIP2_LONGITUDE $geoip2_data_longitude;
# fastcgi_param GEOIP2_LATITUDE $geoip2_data_latitude;
# fastcgi_param GEOIP2_CONTINENT_CODE $geoip2_data_continent_code;
# fastcgi_param GEOIP2_CONTINENT_NAME $geoip2_data_continent_name;
# fastcgi_param GEOIP2_COUNTRY_CODE $geoip2_data_country_code;
# fastcgi_param GEOIP2_COUNTRY_NAME $geoip2_data_country_name;
# fastcgi_param GEOIP2_STATE_CODE $geoip2_data_state_code;
# fastcgi_param GEOIP2_STATE_NAME $geoip2_data_state_name;
# fastcgi_param GEOIP2_CITY_NAME $geoip2_data_city_name;
# fastcgi_param GEOIP2_POSTAL_CODE $geoip2_data_postal_code;
include fastcgi_params;
       }
 location ~* .(jpg|jpeg|gif|png|css|js|ico|webp|tiff|ttf|svg)$ {
 expires           5d;
      }
 deny access to . files, for security
 #
 location ~ /. {
 log_not_found off;
 deny all;
 }
 location ^~ /.well-known {
 allow all;
 auth_basic off;
 }
 }

и точно такой же файл в node2 с другим портом который прослушивает nginx
В папке /site/nginx/logs создаём две директории с названиями
#cd /site/nginx/logs
#mkdir node1 node2

скачиваем образ с nginx+php-fpm
#docker pull richarvey/nginx-php-fpm:latest
создаём контейнеры
#docker run -d --net=host -v /site/nginx/www/:/var/www/html -v /site/nginx/core/node1:/etc/nginx/sites-enabled -v /site/nginx/Logs/node1:/var/log/nginx --name node1 richarvey/nginx-php-fpm
#docker run -d --net=host -v /site/nginx/www/:/var/www/html -v /site/nginx/core/node2:/etc/nginx/sites-enabled -v /site/nginx/Logs/node2:/var/log/nginx --name node2 richarvey/nginx-php-fpm

--name node2 имя контейнера. так с ним удобнее работать

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

параметр --net=host говорит от том, 
что нужно запускать на физическом хосте, 
а не в отдельной подсети(по-умолчанию). 
так проще обращаться по портам.

-v проброс директории с контейнера на физический хост.

Так же при запуск необходимо сделать 
автозапуск контейнеров.
для этого в документации есть описание:
https://docs.docker.com/config/containers/start-containers-automatically/ 
но мы запустили без параметра 
docker run  --restart=always
поэтому обновим конфиг с помощью команды update:
#docker update --restart=always node1
#docker update --restart=always node2 

другие полезные команды:
#docker ps -a
просмотр контейнеров
#docker rm имя контейнера или id
удаление контейнера
#docker stop site
#docker start site

#docker exec --tty --interactive "имя контейнера" bash
подключение к контейнеру для запуска команд.

Запустить контейнер с автоматическим удалением (после остановки) 
#docker run --rm -ti my_container my_image 
Показать список образов 
#docker images 
Удалить нерабочие контейнеры 
#docker container prune -f 
Удалить лишние образы 
#docker image prune -fa 
Показать логи контейнера 
#docker logs my_container -f 

Рубрика: docker, Новости | Оставить комментарий

nginx proxy https and wordpress

Конфиг nginx

upstream wp {
server 10.1.2.2(тут можно прописать порт например «:8080»);
server 10.1.2.3;
}

server {
listen 80;
server_name test.ru;

return 301 https://test.ru$request_uri;

access_log /var/log/nginx/test.ru-access.log;
error_log /var/log/nginx/test.ru-error.log;
location / {
proxy_pass http://wp;
}
}

server {
listen 443 ssl;
server_name test.ru;
access_log /var/log/nginx/test.ru-access.log;
error_log /var/log/nginx/test.ru-error.log;
ssl_certificate /etc/letsencrypt/live/test.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/test.ru/privkey.pem;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;

add_header Strict-Transport-Security «max-age=31536000»;

location / {
proxy_pass http://wp;

#обращение к ноде будет по http. хотя используется https. http быстрее обрабатывать, не нужен сертификат, не нужно копировать сертификат. Меньше ресурсов затрачивается.

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-Proto $scheme;

       }
    }

Важно!

в файле wp-config.php добавить строку:

if (strpos($_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’) !== false) $_SERVER[‘HTTPS’]=’on’;

тогда будет контент правильно отдаваться по https.

php скрипт для тестирования работы нод:

«<?php»

header( ‘Content-Type: text/plain’ );
echo ‘Host: ‘ . $_SERVER[‘HTTP_HOST’] . «\n»;
echo ‘Remote Address: ‘ . $_SERVER[‘REMOTE_ADDR’] . «\n»;
echo ‘X-Forwarded-For: ‘ . $_SERVER[‘HTTP_X_FORWARDED_FOR’] . «\n»;
echo ‘X-Forwarded-Proto: ‘ . $_SERVER[‘HTTP_X_FORWARDED_PROTO’] . «\n»;
echo ‘Server Address: ‘ . $_SERVER[‘SERVER_ADDR’] . «\n»;
echo ‘Server Port: ‘ . $_SERVER[‘SERVER_PORT’] . «\n\n»;

«»?>»»

Рубрика: nginx, Общее | Оставить комментарий

Оценка размена директории с сортировкой по размеру.

du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done

Рубрика: Общее | Оставить комментарий

Получение административных прав windows 7

Загрузиться через winpe.

заменить файл sethc.exe на cmd.exe (старый сохранить)

загрузиться в нормальном режиме, нажать 5 раз шифт.

в командной строке выполнить:

net user admin password1234! /add
net localgroup Administrators admin /add

Рубрика: Windows | Оставить комментарий

Разрешение web серверу соединяться с удалённой бд. SELinux

Проверить SELinux sestatus

Чтобы увидеть, какие флаги установлены в процессах

httpd getsebool -a | grep httpd

Чтобы разрешить Apache подключаться к удаленной базе данных через SELinux: setsebool httpd_can_network_connect_db 1

Опция -P делает изменение постоянным. Без этой опции логическое значение будет сброшено до 0 при перезагрузке.

setsebool -P httpd_can_network_connect_db 1

Рубрика: Apache, Новости | Оставить комментарий

nginix + gzip

Требования

  • Сервер CentOS 7.
  • Предварительно установленный веб-сервер Nginx .

1: Создайте тестовые файлы

Для начала нужно создать в стандартном каталоге Nginx несколько файлов, чтобы на них потренироваться.

Чтобы определить, какой тип файла передаётся  по сети, Nginx не анализирует содержимое файла – эта операция заняла бы слишком много времени. Вместо этого Nginx просто читает расширение файла, чтобы определить его MIME-тип.

Потому неважно, что будут содержать тестовые файлы. Достаточно просто правильно задать имя файла, чтобы Nginx воспринимал пустой файл как изображение, таблицу стилей и т.п.

В данном примере настройки Nginx не будет сжимать слишком маленькие файлы. Создайте тестовый файл по имени test.html размером в 1 килобайт.

truncate -s 1k /usr/share/nginx/html/test.html

Создайте ещё несколько тестовых файлов: jpg, таблицу стилей css и JavaScript-файл js.

truncate -s 1k /usr/share/nginx/html/test.jpg
truncate -s 1k /usr/share/nginx/html/test.css
truncate -s 1k /usr/share/nginx/html/test.js

2: Проверьте стандартное поведение сервера

Теперь нужно проверить, как Nginx сжимает файлы.

Попробуйте сжать тестовый HTML-файл test.html.

curl -H "Accept-Encoding: gzip" -I http://localhost/test.html

Примечание: HTTP-заголовок Accept-Encoding: gzip указывает, что веб-сервер может обслуживать сжатый при помощи gzip контент.

В ответ сервер вернёт несколько заголовков HTTP.

HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Fri, 11 Mar 2016 12:53:06 GMT
Content-Type: text/html
Content-Length: 1024
Last-Modified: Fri, 11 Mar 2016 12:48:02 GMT
Connection: keep-alive
ETag: "56e2be82-400"
Accept-Ranges: bytes

Как видите, в выводе нет никаких упоминаний о gzip; значит, сервер не поддерживает сжатие gzip. По умолчанию в системе CentOS 7 сжатие gzip на сервере Nginx отключено. Если сжатие включено, сервер добавляет к предыдущим строкам заголовок:

Content-Encoding: gzip.

Итак, на данный момент сервер не сжимает никаких файлов. Чтобы убедиться в этом, запросите тестовый файл test.jpg:

curl -H "Accept-Encoding: gzip" -I http://localhost/test.jpg

Сервер вернёт примерно такой результат:

HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Fri, 11 Mar 2016 12:58:03 GMT
Content-Type: image/jpeg
Content-Length: 1024
Last-Modified: Fri, 11 Mar 2016 12:48:05 GMT
Connection: keep-alive
ETag: "56e2be85-400"
Accept-Ranges: bytes

Заголовок Content-Encoding: gzip в выводе отсутствует; значит, файл не был сжат.

Повторите тест с файлом CSS:

curl -H «Accept-Encoding: gzip» -I http://localhost/test.css

Как видите, этот файл тоже не сжимается:

HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Fri, 11 Mar 2016 12:59:04 GMT
Content-Type: text/css
Content-Length: 1024
Last-Modified: Fri, 11 Mar 2016 12:48:05 GMT
Connection: keep-alive
ETag: "56e2be85-400"
Accept-Ranges: bytes

3: Включение и настройка gzip в Nginx

Теперь нужно включить gzip и настроить сжатие файлов.

Модуль gzip является одним из основных модулей Nginx, то есть он уже установлен, но нуждается в настройке.

Как правило, на свежей установке Nginx в CentOS 7 все файлы каталога /etc/nginx/conf.d с расширением .conf загружаются автоматически. Это позволяет быстро настроить дополнительные модули.

Чтобы включить gzip, создайте конфигурационный файл gzip.conf:

sudo nano /etc/nginx/conf.d/gzip.conf

Вставьте в него следующий код:

##
# `gzip` Settings
#
#
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;

Сохраните и закройте файл.

Только что добавленный код состоит из следующих директив:

  • gzip on включает сжатие файлов.
  • gzip_disable «msie6» исключает
  • Internet Explorer 6 из списка браузеров, которые будут получать сжатые файлы (в IE6 полностью отсутствует поддержка gzip)
  • gzip_vary и gzip_proxied обеспечивает правильную работу прокси-серверов.
  • gzip_comp_level 6 задаёт количество сжимаемых файлов. Чем больше файлов нужно сжать, тем больше расходуется ресурсов.
  • gzip_http_version 1.1 ограничивает сжатие браузерами, поддерживающими протокол HTTP/1.1 (браузеры, не поддерживающие этот протокол, скорее всего, не поддерживают сжатия gzip).
  • gzip_min_length 256 устанавливает минимальный объём сжимаемого файла. Теперь сервер не будет сжимать файлы меньше 256 байт.
  • gzip_types перечисляет MIME-типы файлов, которые нужно сжать; в данном случае в список включены файлы HTML, XML, Javascript и JSON, таблицы стилей CSS, изображения SVG, иконки и веб-шрифты.

Чтобы обновить настройки, перезапустите Nginx.

nginx -s reload

4: Проверьте настройку

После настройки Nginx нужно убедиться, что сервер работает должным образом.

Для этого запросите тестовые файлы (как в разделе 2). Вывод должен содержать заголовок Content-Encoding: gzip.

curl -H "Accept-Encoding: gzip" -I http://localhost/test.html

Теперь в выводе появится заголовок, которого не было раньше:

HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Fri, 11 Mar 2016 13:19:16 GMT
Content-Type: text/html
Last-Modified: Fri, 11 Mar 2016 12:48:02 GMT
Connection: keep-alive
Vary: Accept-Encoding
Content-Encoding: gzip

Проверьте остальные тестовые файлы:

curl -H "Accept-Encoding: gzip" -I http://localhost/test.jpg
curl -H "Accept-Encoding: gzip" -I http://localhost/test.css
curl -H "Accept-Encoding: gzip" -I http://localhost/test.js

Теперь несжатым останется только test.jpg, файл изображения.

Удалите файлы.

Рубрика: Новости, Общее | Оставить комментарий