Linux – Ubuntu очистка дискового пространства (памяти)

Очитка логов:
find /var/log \( -name "*.[0-9]" -o -name "*.*.[0-9]" -o -name "*.gz" \) -exec rm {} \;
find /var/log/ -type f -name "*log" -exec cp /dev/null {} \;

может в крон добавить:
0 0 * * * find /var/log \( -name "*.[0-9]" -o -name "*.*.[0-9]" -o -name "*.gz" \) -exec rm {} \; && find /var/log/ -type f -name "*log" -exec cp /dev/null {} \;

Очистка папки journal:
# journalctl --disk-usage
Archived and active journals take up 952.2M on disk.

Делаем чистку:

# journalctl --vacuum-size=50M
# journalctl --verify

linux: показать размер папок в категории:
du --max-depth=1 -h

Guzzle – параллельные запросы

<?php
$Guzzle = new Client([
    ‘base_uri’        => ‘example.com’,
    ‘cookies’         => true,
    ‘timeout’         => 30.0,
    ‘verify’          => false,
    ‘allow_redirects’ => true,
    ‘http_errors’     => false,
    ‘curl’     => [
        CURLOPT_PROXY     => ‘192.168.0.1’,
        CURLOPT_PROXYPORT => 1234,
        CURLOPT_PROXYTYPE => CURLPROXY_SOCKS5,
    ],
    ‘headers’ => $headers,
]);
$options[$index][‘form_params’] = [
    ‘textfield’              => $inn,
    ‘radReg’                 => ‘FederalDistricts’,
];
$results[$index][‘headers’] = [
    ‘Accept’             => ‘application/json’,
    ‘Accept-Encoding’    => ‘gzip, deflate, br’,
    ‘Accept-Language’    => ‘ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7,ka;q=0.6’,
    ‘Connection’         => ‘keep-alive’,
    ‘Content-Type’       => ‘application/x-www-form-urlencoded; charset=UTF-8’,
    ‘Sec-Fetch-Dest’     => ’empty’,
    ‘Sec-Fetch-Mode’     => ‘cors’,
    ‘Sec-Fetch-Site’     => ‘same-origin’,
    ‘User-Agent’         => ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36’,
    ‘X-Requested-With’   => ‘XMLHttpRequest’,
    ‘sec-ch-ua’          => ‘”Not_A Brand”;v=”8″, “Chromium”;v=”120″, “Google Chrome”;v=”120″‘,
    ‘sec-ch-ua-mobile’   => ‘?0’,
    ‘sec-ch-ua-platform’ => ‘”Windows”‘,
];
$results[$idEmitent][‘decode_content’] = true;
// $results[$idEmitent][‘debug’] = true;
// $results[‘proxy’] = $this->lastProxy; // alternative variant proxy
$requests = static function () use ($options, $Client) {
    $url = ‘https://example.com/api/search/companies’;
    foreach ($options as $index => $option) {
        yield $index => function() use ($Client, $url, $option) {
            return $Client->postAsync($url, $option);
        };
    }
};
$pool = new Pool($Client, $requests(), [
    ‘concurrency’ => 5,
    ‘fulfilled’ => function (Response $Response, $index, $aggregate) use ($companyList) {
        $content = $Response->getBody()->getContents();
        if (empty($content)) {
            $aggregate->cancel();
            return;
        }
        $this->doSomethingWithData($content, $companyList[$idEmitent]);
    },
    ‘rejected’ => function (RequestException|ConnectException $reason, $idEmitent) {
        $this->logError(‘Ошибка Guzzle: ‘ . $idEmitent);
        $this->setGuzzle(resetProxy:true);
    },
]);
$promise = $pool->promise();
try {
    $promise->wait();
} catch (CancellationException $exception) {
    $this->setGuzzle(resetProxy:true);
}

Laravel – полезное

Если картинки не отображаются: php artisan storage:link

wsl ssh проблемы:

eval `ssh-agent -s`

ssh-add ~/.ssh/id_rsa

____

Добавить в cron scheduler :

команда:

crontab -e

текст:

* * * * * cd var/www/ && php artisan schedule:run >> /dev/null 2>&1

https://crontab.guru/#*_*_*_*_*

 

Список заданий в расписании: php artisan schedule:list

получал 404 ошибку для картинок из папки. Оказалось не прописаны права доступа:

chmod 755 category

миграция одной таблицы, прописываем путь:

php artisan migrate:refresh –path=/database/migrations/2023_07_27_123118_parser_news.php

На прочитать

https://proglib.io/sh/NeiT4ZYIdQ  –  https://proglib.tech/p/polnoe-rukovodstvo-po-osnovam-git-2023-04-05

https://proglib.io/sh/EAUkob4HNR – https://proglib.tech/p/modulnaya-arhitektura-chto-kak-i-pochemu-2023-04-04

https://medium.com/ampersand-academy/php-read-and-write-excel-file-using-phpspreadsheet-ec0b41fb1fd0

https://blog.programster.org/create-excel-spreadsheets-using-phpspreadsheet

https://www.pythoncheatsheet.org/

https://refactoring.guru/ru

laradock – полезное

Документация: https://laradock.io/getting-started/#installation

Запустить ларадок:

docker-compose up -d nginx mysql redis

docker-compose up -d nginx mariadb phpmyadmin  redis

docker-compose stop

docker-compose down

Ошибка с правами доступа, исправлять внутри контейнера:

docker compose exec workspace bash

исполнить команду:

chown -R laradock:laradock /var/www

 

Обновить ssl сертификат и перезапустить контейнер:

docker-compose build –no-cache nginx

Переименовать public в public_html в laravel

app\Providers\AppServiceProvider.php

$this->app->bind(‘path.public’, function () {
return realpath(base_path() . ‘/public_html’);
});

Рабочий и быстрый способ запустить openvpn на сервере

Чтобы установить на своем сервере OpenVpn достаточно подключиться к нему по SSH, скачать файл с github и запустить его. Далее следовать инструкциям установщика.

Файл находится здесь: https://github.com/Nyr/openvpn-install

А вот список команд, которые последовательно нужно вводить на сервере:

1 ip addr – узнать свой ip
3 sudo apt-get update && sudo apt-get dist-upgrade – обновиться
4 sudo reboot – перезагрузиться
5 sudo apt-get install ufw – установка сетевого экрана
6 sudo ufw allow 22 – далее настройка портов
7 sudo ufw allow 80
8 sudo ufw allow 443
9 sudo ufw allow 992
10 sudo ufw enable – включение экрана
11 sudo ufw status – проверка статуса. Убедитесь что порты работают
12 wget https://git.io/vpn -O openvpn-install.sh – скачивание файла с gitHub
13 sudo bash openvpn-install.sh – установка openVpn
14 systemctl status openvpn-server@server.service – проверки, что vpn работает

Дальше просто скачиваете ovpn файлы из root директории и подключаетесь на своем пк(или другом устройстве).

Для создания других ovpn файлов просто запускается команду из той же папки, где качали файл с gitHub:

sudo bash openvpn-install.sh

Ненужные команды:

16 ip addrsystemctl status openvpn@client-home
17 systemctl status openvpn@client-home
18 systemctl status openvpn@clien
19 systemctl status openvpn@openvpn
20 systemctl status openvpn-server@server.service

22 systemctl status openvpn-server@server.service
23 netstat -n | find “:3389” | find “ESTABLISHED”

26 sudo bash openvpn-install.sh

 

 


Ссылки: 

https://github.com/Nyr/openvpn-install

https://www.cyberciti.biz/faq/howto-setup-openvpn-server-on-ubuntu-linux-14-04-or-16-04-lts/

https://wiki.iphoster.net/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_VPN_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_(openvpn-install.sh)_%D0%B7%D0%B0_3_%D0%BC%D0%B8%D0%BD%D1%83%D1%82%D1%8B

 

Docker команды

docker run -v C:\petProjects\some\nginx:/usr/share/nginx/html -p 8088:80 -d nginx

docker run –name convertervideo -it –rm -p 8088:80 -v C:\Users\a.taskaev\Videos\drone:/app/video converter:10

docker run -v ${PWD}:/usr/share/nginx/html -p 8080:80 -d nginx

 

docker run –name convertervideo -it –rm p 8088:80 converter:8

docker stop $(docker ps -q) – stop можно заменить на kill для принудительного удаления

–rm удалить контейнер после работы

-p порты

-d detach запускать контейнер в фоне

-it – интерактивный режим

docker run –name mynginx -v ${PWD}:/usr/share/nginx/html -p 8888:80 -d –rm nginx

Создать образ:

docker build -t converter .

В несколько строк

docker run \
–name mynginx \
-v ${PWD}:/usr/share/nginx/html \
-p 8888:80 \
-d \
–rm \
nginx

 

 

# docker container stop КОНТЕЙНЕР

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

# docker container kill КОНТЕЙНЕР

Немедленное завершение всех запущенных контейнеров:

# docker container kill $(docker ps -q)

# docker container rm КОНТЕЙНЕР

удалить все не запущенные контейнеры.

# docker container rm $(docker ps -a -q)

https://itproffi.ru/docker-chast-2-rabota-s-kontejnerami - почитать

 

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

docker exec -it cb48887ceb64 sh

Греция документы, советы и что взять в дорогу

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

Это личные заметки, но решение сохранить их может помочь мне и кому-то ещё в будущем.

Виза в Грецию.

Ориентировался на этот сайт -> https://provisy.ru/tourist-visa/t-greece.html и визовый центр Греции в СПБ -> https://ru-gr.gvcworld.eu/ru (ужасный сайт).

Список документов:

  1. Паспорт РФ  + копия
  2. Загранпаспорт с двумя чистыми страницами + копия со всеми отметками в паспорте (визы, штампы)
  3. Анкета заявителя;
    пример: https://provisy.ru/fill-in/application-greece.html      https://provisy.ru/countries/process-greece.html
    Заполнил её онлайн на сайте визового центра -> https://ru-gr.gvcworld.eu/ru
  4. Медицинская страховка с покрытием не менее 30 тыс. евро или 50 000 долларов США.
    Зона покрытия: либо «Греция», «страны Шенгена», либо «Весь мир».
    Купил у Тинькофф, на сайте “Черепаха” было дороже.
  5. Подтверждение трудоустройства и платежеспособности (справка с работы и выписка о доходах);
    50 евро в день на человека но не менее 50 000 руб.
    По сути берем выписку с банка за 3 месяца и с работы справку.
  6. Билеты на самолет и бронь отеля; На момент подачи документов необходимо было полностью оплачивать билеты и отель.
  7. 35 € консульский сбор + 1700 визовый сбор ( оплачивается в визовом центре )
  8. Фотографии 35х45 (2 шт.). сделать в визовом центре 300 руб.

Для въезда в Грецию важно:

  1. Сделать ПЦР-тест (за 72 часа до вылета)
  2. PLF-анкета для въезда ( за 24 часа до вылета , лучше за 48) – инструкция (https://www.mouzenidis-travel.ru/greece/article/plf-greece)

Я собирался уехать в Европу на долгий срок, поэтому думал об аренде склада:

  1. склад ~
    https://xn--80aafh2add0ab4g.xn--p1ai/contacts – 2000 в месяц (оплата за 6 если )
    https://nordboxspb.ru/calc/ – дешевле ( 8к за 6 месяцев)

Расходы:

  1. 70000 на человека х 2
  2. 11000 отель на 7 дней
  3. 35000 билеты
  4. 6000 виза + 6000 запись
  5. 6400 ПЦР тест

 

Таблица символов кодировки ASCII в URL код

 

Кодирование в URL заменяет небезопасные символы ASCII на символ «%» и следующие две шестнадцатеричные цифры соответствующего значения в наборе символов ISO-8859-1. В ручную кодировать символы очень хлопотно. Для ускорения процесса конвертации кодировки используйте «Кодировщик HTML в URL». Использование данного кодирования не влияет на реакцию антивирусов и допускается для расширенного применения. В статье представлена таблица символов кодировки ASCII в URL код.

Появление адресов URL стало существенным нововведением в Интернете. Однако с момента его изобретения и по сей день стандарт URL обладает серьёзным недостатком. В нём можно использовать только ограниченный набор символов, даже меньший, нежели в ASCII: латинские буквы, цифры и лишь некоторые знаки препинания. Если мы захотим использовать в URL символы кириллицы, или иероглифы, или, скажем, специфические символы французского языка, то нужные нам символы должны быть перекодированы особым образом.

Функции в PHP:
urlencode() — URL-кодирование строки
urldecode() — Декодирование URL-кодированной строки

Функции в Javascript:
escape() — URL-кодирование строки
unescape() — Декодирование URL-кодированной строки

Таблица соответствия символов ASCII к URL кодировке

ASCII Код ASCII Код ASCII Код ASCII Код ASCII Код ASCII Код
æ %00 0 %30 ` %60 %90 À %c0 ð %f0
%01 1 %31 a %61 %91 Á %c1 ñ %f1
%02 2 %32 b %62 %92 Â %c2 ò %f2
%03 3 %33 c %63 %93 Ã %c3 ó %f3
%04 4 %34 d %64 %94 Ä %c4 ô %f4
%05 5 %35 e %65 %95 Å %c5 õ %f5
%06 6 %36 f %66 %96 Æ %c6 ö %f6
%07 7 %37 g %67 %97 Ç %c7 ÷ %f7
backspace %08 8 %38 h %68 ˜ %98 È %c8 ø %f8
tab %09 9 %39 i %69 %99 É %c9 ù %f9
linefeed %0a : %3a j %6a š %9a Ê %ca ú %fa
%0b ; %3b k %6b %9b Ë %cb û %fb
%0c < %3c l %6c œ %9c Ì %cc ü %fc
c return %0d = %3d m %6d %9d Í %cd ý %fd
%0e > %3e n %6e ћ %9e Î %ce þ %fe
%0f ? %3f o %6f Ÿ %9f Ï %cf ÿ %ff
%10 @ %40 p %70 %a0 Ð %d0
%11 A %41 q %71 ¡ %a1 Ñ %d1
%12 B %42 r %72 ¢ %a2 Ò %d2
%13 C %43 s %73 £ %a3 Ó %d3
%14 D %44 t %74 %a4 Ô %d4
%15 E %45 u %75 ¥ %a5 Õ %d5
%16 F %46 v %76 | %a6 Ö %d6
%17 G %47 w %77 § %a7 %d7
%18 H %48 x %78 ¨ %a8 Ø %d8
%19 I %49 y %79 © %a9 Ù %d9
%1a J %4a z %7a ª %aa Ú %da
%1b K %4b { %7b « %ab Û %db
%1c L %4c | %7c ¬ %ac Ü %dc
%1d M %4d } %7d ¯ %ad Ý %dd
%1e N %4e ~ %7e ® %ae Þ %de
%1f O %4f %7f ¯ %af ß %df
space %20 P %50 Ђ %80 ° %b0 à %e0
! %21 Q %51 %81 ± %b1 á %e1
« %22 R %52 %82 ² %b2 â %e2
# %23 S %53 ƒ %83 ³ %b3 ã %e3
$ %24 T %54 %84 ´ %b4 ä %e4
% %25 U %55 %85 µ %b5 å %e5
& %26 V %56 %86 %b6 æ %e6
%27 W %57 %87 · %b7 ç %e7
( %28 X %58 ˆ %88 ¸ %b8 è %e8
) %29 Y %59 %89 ¹ %b9 é %e9
* %2a Z %5a Š %8a º %ba ê %ea
+ %2b [ %5b %8b » %bb ë %eb
, %2c \ %5c Œ %8c ¼ %bc ì %ec
%2d ] %5d %8d ½ %bd í %ed
. %2e ^ %5e Ћ %8e ¾ %be î %ee
/ %2f _ %5f %8f ¿ %bf ï %ef

git – добавление в gitignore файлов и папок после коммита или пуша

Случается, что забыл добавить в игнор что-нибудь и это летит на сервер. А нам это не надо))

Шаг 1:

Добавить в gitignore нужныe правила

Например мой вариант:

/*  # игнор всего
!/js # оставить только папку с js скриптами

 

Шаг 2:

Очистить свой репозиторий.

Команда:

” git rm -r –cached . ” ( точку не забываем *) 

шаг 3:

Команда:

” git add . ”

Ну и 4 шаг:

”    git commit -m “yoursCommit”    ”

 

p.s. в github desctop есть терминал. ОТкрывается по команде ” ctrl + ”