Заметки

Git

Для начала определим пользователья глобально и перенос новых строк отключим авто замену CRLF обратно на LF. И также core.symlinks true позволяет Git создавать и обрабатывать символические ссылки. Для работы с символическими ссылками необходимо запускать Git из командной строки Windows (CMD) с правами администратора.

git config --global core.autocrlf false
git config --global core.symlinks true
git config --global user.name "username"
git config --global user.email "username@mail.com"

Для создания нового репозитория и отправки всего его содержимого в новый уже созданый репозиторий на github:

git init
git config --local core.symlinks true
git add .
git status

git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/d00m4ace/hex.play.git
git push -u origin main

Если вы хотите скопировать существующий репозиторий, используйте команду git clone:

git clone --config core.symlinks=true https://github.com/d00m4ace/HEXPLAY.git

Проверьте обновления с сервера

git pull
git status
git merge

Добавьте свои изменения

git add .
git commit -m "Your descriptive commit message here"
git push

Чтобы отменить последний git add, вы можете использовать команду git reset Эта команда снимет индексацию с изменений, но сохранит сами изменения в файлах.

git reset

Чтобы отменить изменения в рабочей копии, которые не добавлены в индекс (не подготовлены к коммиту), вы можете использовать команду git checkout или git restore, в зависимости от версии Git, которую вы используете. Для Git версии 2.23 и новее рекомендуется использовать git restore.

Чтобы отменить изменения в конкретном файле

git restore path/to/file/to/revert

Чтобы отменить изменения во всей рабочей директории

git restore .

Nginx

Запуск Nginx

start nginx

Остановка Nginx

nginx -s stop

Эта команда останавливает Nginx немедленно. Это может привести к потере данных, которые еще не были записаны на диск.

Безопасная остановка Nginx

nginx -s quit

Перезапуск Nginx

nginx -s reload

Эта команда перезапускает Nginx, что полезно при изменении конфигурационных файлов.

Проверка конфигурации Nginx

nginx -t

Создать новую службу в Windows

Команда sc create для создания новых служб в Windows:

sc create [service name] binPath= "[path to the .exe]"

sc create nginx binPath= "C:\nginx\nginx.exe"

Следует также отметить, что команда sc create создает службу с настройками по умолчанию. В частности, служба будет работать под учетной записью LocalSystem и не будет автоматически запускаться при старте системы. Вы можете изменить эти и другие настройки с помощью дополнительных опций команды sc create или через Менеджер служб Windows.

После того как служба создана, вы можете запустить ее с помощью команды sc start [service name], а остановить - с помощью команды sc stop [service name].

sc start nginx
sc stop nginx

Так же команды net start и net stop используются в командной строке Windows для управления службами Windows.

net start nginx
net stop nginx

Если вы часто перезапускаете службу, может быть удобно создать скрипт для этого. Например, вы можете создать файл !.bat со следующим содержимым:

@echo off
net stop nginx
net start nginx

Curl

Отправляет POST-запрос с JSON-телом. Здесь -H "Content-Type: application/json" указывает, что тело запроса будет в формате JSON. -d "{\"name\":\"John\", \"age\":30}" это данные, которые вы отправляете в теле запроса.

C:\curl\curl -X POST -H "Content-Type: application/json" -d "{\"name\":\"John\", \"age\":30}" https://test.hexplay.com/post

Отправляет POST-запрос с данными в формате x-www-form-urlencoded. Здесь -H "Content-Type: application/x-www-form-urlencoded" указывает, что тело запроса будет в формате x-www-form-urlencoded, а -d "name=John&age=30" это данные, которые вы отправляете.

C:\curl\curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "name=John&age=30" https://test.hexplay.com/post

Отправляет POST-запрос с текстовыми данными. Здесь -H "Content-Type: text/plain" указывает, что тело запроса будет текстовым, а -d "Hello, World!" это данные, которые вы отправляете.

C:\curl\curl -X POST -H "Content-Type: text/plain" -d "Hello, World!" https://test.hexplay.com/post

Отправит GET-запрос на указанный URL с параметрами name=John и age=30, и вы увидите ответ в командной строке.

C:\curl\curl "https://test.hexplay.com/get?name=John&age=30"

-O (заглавная "O", а не ноль) говорит curl сохранить файл с оригинальным именем файла из URL.

curl -O https://example.com/path/to/file

Эта команда загрузит файл, как и прежде, но сохранит его под именем newfile.

curl -o newfile https://example.com/path/to/file

Опция -z позволяет указать время и дату файла. Если файл на сервере новее указанного времени, curl загрузит его.

curl -z localfile -O https://example.com/path/to/file

В этом случае curl сначала проверяет время последнего изменения локального файла (localfile). Если файл на сервере новее, curl загрузит его и перезапишет локальный файл.

mklink

Помните, что для выполнения команды mklink вам нужны административные права в Windows.

mklink /d code ..\..\code

Создает символическую ссылку с именем "code" на каталог "..\..\code" относительно текущего местоположения в файловой системе. Используется флаг /d, который указывает, что вы создаете символическую ссылку на каталог, а не на файл.

7z

Скрипт Windows Batch создает архив 7z директории HEXPLAY\ с помощью 7-Zip и именуют его в зависимости от текущей даты и времени, исключая директории .vs, x64, Debug, Release, output, и .git. !BACKUP.bat

set target="%DATE:~-4%.%DATE:~4,2%.%DATE:~7,2%-%TIME:~0,2%.%TIME:~3,2%.%TIME:~-5%-HEXPLAY-BACKUP-mx5".7z
"C:\Program Files\7-Zip\7z.exe" a -t7z %target% HEXPLAY\ -mx5 -xr!.vs -xr!x64 -xr!Debug -xr!Release -xr!output -xr!.git
copy %target% "G:\My Drive\BACKUP"
copy %target% "E:\BACKUP\"
  • Первая команда: устанавливает переменную target с именем файла, включающим текущую дату и время, а также суффикс -HEXPLAY-BACKUP-mx5 и расширением .7z. Использование %DATE% и %TIME% с подстроками создает дату и время в нужном формате.
  • Вторая команда: использует 7-Zip для создания архива 7z. Опция a добавляет файлы в архив, -t7z указывает тип архива (7z), %target% является именем создаваемого архива, HEXPLAY\ это директория, которую нужно архивировать, -mx5 задает уровень сжатия, а -xr! используется для исключения определенных директорий или файлов из процесса архивации.
  • Третья и четвертая команды: копирует файл в директорию BACKUP на диске G, и копирует файл в директорию BACKUP на диске E.

Убедитесь, что путь к 7z.exe верный и что директория HEXPLAY\ существует. Если они не существуют или неправильно указаны, вы получите ошибку.

PostgreSQL

pg_env.bat скрипт настраивает среду для PostgreSQL.

C:\PostgreSQL\16\pg_env.bat

Cоздаем резервную копию базы данных PostgreSQL с именем "mydb".

C:\PostgreSQL\16\bin\pg_dump -U postgres -W -F t -b -v mydb > dbbackup.tar
  • "pg_dump": утилита, предоставляемая PostgreSQL для создания резервных копий баз данных.
  • "-U postgres": указывает, что вы хотите использовать пользователя PostgreSQL с именем "postgres" для создания резервной копии.
  • "-W": заставит команду запросить пароль для пользователя.
  • "-F t": указывает, что резервная копия должна быть создана в формате tar.
  • "-b": включает в дамп большие объекты.
  • "-v": включает режим verbose для отображения подробной информации в процессе резервного копирования.
  • "mydb": имя базы данных, которую вы хотите сохранить.
  • "> dbbackup.tar": перенаправляет вывод команды pg_dump (то есть резервную копию) в файл с именем "dbbackup.tar". Если файл с этим именем уже существует, он будет перезаписан.

Команда восстанавливает базу данных PostgreSQL с именем "mydb" из резервной копии, находящейся в файле "dbbackup.tar".

C:\PostgreSQL\16\bin\pg_restore -U postgres -W -d mydb -1 --clean dbbackup.tar
  • "pg_restore": утилита, предоставляемая PostgreSQL для восстановления баз данных из резервных копий.
  • "-U postgres": указывает, что вы хотите использовать пользователя PostgreSQL с именем "postgres" для восстановления.
  • "-W": заставит команду запросить пароль для пользователя.
  • "-d mydb": имя базы данных, которую вы хотите восстановить. Обратите внимание, что эта база данных должна уже существовать перед восстановлением. Если она не существует, вы можете создать ее с помощью утилиты createdb.
  • "-1": опция указывает, что восстановление должно быть выполнено в одной транзакции. Таким образом, если во время восстановления произойдет какая-либо ошибка, все изменения, сделанные во время восстановления, будут откачены, оставив базу данных в ее исходном состоянии.
  • "--clean": Это приведет к удалению существующих объектов в целевой базы данных перед их восстановлением из файла резервной копии.
  • "dbbackup.tar": имя файла резервной копии, которую вы хотите восстановить.

Если вы сталкиваетесь с ошибкой, указывающей на отсутствие базы данных mydb, и хотите создать её, команда createdb является правильным способом её создания.

C:\PostgreSQL\16\bin\createdb -U postgres mydb

Файл pgpass.conf используется командной строкой PostgreSQL для хранения паролей для подключений к базам данных. Он обычно находится в папке %APPDATA%\postgresql\pgpass.conf для пользователя, запускающего PostgreSQL.

Формат содержимого файла:

localhost:5433:mydb:my_user_postgres:my_user_postgres_password

Это означает, что при использовании утилит pg_dump и pg_restore для базы данных mydb подключение будет происходить без запроса пароля для пользователя my_user_postgres, используя пароль my_user_postgres_password для подключения к базе данных на localhost через порт 5433.

Рекомендуется хранить пароль в pgpass.conf с ограниченным доступом и указать его расположение в строке подключения с помощью passfile, чтобы обеспечить успешную аутентификацию.

set PGPASSFILE=C:\projects\pgpass.conf
C:\PostgreSQL\16\bin\pg_dump -U postgres -F t mydb > dbbackup.tar

Эта команда устанавливает переменную окружения PGPASSFILE путь к файлу pgpass.conf, а затем запускает команду pg_dump для создания резервной копии базы данных mydb в формате tar, сохраняя ее в файле dbbackup.tar.

Вы можете временно установить переменную среды PGPASSWORD перед выполнением команды для избежания запроса пароля:

set PGPASSWORD=yourpassword
C:\PostgreSQL\16\bin\createdb -U postgres mydb

Учтите, что использование PGPASSWORD может представлять риски безопасности, особенно на машинах с несколькими пользователями или в скриптах.

Проверка существующих баз данных: Чтобы проверить, какие базы данных уже существуют на вашем сервере PostgreSQL, вы можете использовать команду psql:

C:\PostgreSQL\16\bin\psql -U postgres -l

Автоматизация процесса резервного копирования базы данных PostgreSQL

Скрипт all_dump.bat автоматизирует процесс создания резервной копии базы данных PostgreSQL с уникальным именем файла, включающим текущую дату и время:

set psql_path=C:\PostgreSQL\16
set PGPASSWORD=d00m4ace
call %psql_path%\pg_env.bat

for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set datetime=%%I
set date=%datetime:~6,2%.%datetime:~4,2%.%datetime:~0,4%
set time=%datetime:~8,2%.%datetime:~10,2%.%datetime:~12,2%
set target="%date%-%time%-dbbackup.tar"

%psql_path%\bin\pg_dump -U postgres -F t -b -v d00m4ace > %target%

echo Backup completed: %target%

Скрипт all_dump.bat выполняет следующие действия:

  1. Устанавливает путь к PostgreSQL и пароль.
  2. Загружает переменные окружения PostgreSQL.
  3. Получает текущую дату и время.
  4. Формирует имя файла резервной копии с текущей датой и временем.
  5. Выполняет резервное копирование базы данных "d00m4ace" с помощью pg_dump.
  6. Сохраняет резервную копию в файл формата .tar.
  7. Выводит сообщение о завершении резервного копирования.

Скрипт dump.bat автоматизирует процесс создания резервной копии определенных таблиц из базы данных PostgreSQL.

set psql_path=C:\PostgreSQL\16
set PGPASSWORD=d00m4ace
call %psql_path%\pg_env.bat

for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set datetime=%%I
set date=%datetime:~6,2%.%datetime:~4,2%.%datetime:~0,4%
set time=%datetime:~8,2%.%datetime:~10,2%.%datetime:~12,2%
set target="%date%-%time%-dbbackup.sql"

:: Выберите один из двух вариантов ниже:
:: Вариант 1: Список таблиц прямо в скрипте
set tables=currencies licenses subscriptions transactions
:: Вариант 2: Чтение таблиц из файла
:: set /p tables=<tables.txt

:: Создание SQL dump для указанных таблиц
(for %%t in (%tables%) do (
    echo DROP TABLE IF EXISTS public.%%t;
    %psql_path%\bin\pg_dump -U postgres -t %%t d00m4ace
    echo.
)) > %target%

echo Backup completed: %target%

Скрипт dump.bat выполняет следующие действия:

  1. Устанавливает путь к PostgreSQL и пароль.
  2. Получает текущую дату и время.
  3. Формирует имя файла для резервной копии с текущей датой и временем.
  4. Определяет список таблиц для резервного копирования (либо напрямую в скрипте, либо из файла).
  5. Создает SQL дамп для каждой указанной таблицы, включая команду DROP TABLE и данные таблицы.
  6. Сохраняет все дампы в один файл с именем, содержащим текущую дату и время.
  7. Выводит сообщение о завершении резервного копирования.

Скрипт run_dump.bat периодически запускает dump.bat с заданным интервалом времени, пока его не остановят вручную.

@echo off
setlocal enabledelayedexpansion

:: Задайте интервал в часах
set "interval_hours=1"
:: Преобразование часов в секунды
set /a "delay_seconds=%interval_hours% * 3600"

:loop
echo run dump.bat...
call dump.bat

echo Waiting %interval_hours% hours until the next startup...
timeout /t %delay_seconds% /nobreak

goto loop

Скрипт run_dump.bat выполняет следующие действия:

  1. Отключает вывод команд на экран (@echo off).
  2. Устанавливает интервал в 1 час (можно изменить).
  3. Преобразует интервал из часов в секунды.
  4. Запускает бесконечный цикл, в котором:
  5. Выполняет другой файл dump.bat
  6. Ждет заданный интервал (по умолчанию 1 час)
  7. Повторяет процесс

Команды для восстановления базы данных PostgreSQL из полученных выше файлов:

C:\PostgreSQL\16\pg_env.bat
C:\PostgreSQL\16\bin\pg_restore -U postgres -W -d d00m4ace -1 22.10.2024-12.08.49-dbbackup.tar 
C:\PostgreSQL\16\bin\psql -U postgres -W -d d00m4ace -1 -f 22.10.2024-11.44.23-dbbackup.sql
  1. C:\PostgreSQL\16\pg_env.bat: Это файл пакетного сценария, который обычно устанавливает переменные среды для PostgreSQL. Он настраивает пути и другие параметры, необходимые для работы с PostgreSQL.

  2. C:\PostgreSQL\16\bin\pg_restore -U postgres -W -d d00m4ace -1 22.10.2024-12.08.49-dbbackup.tar: Эта команда восстанавливает базу данных из файла резервной копии '22.10.2024-12.08.49-dbbackup.tar':

    • -U postgres: использует пользователя 'postgres'
    • -W: запрашивает пароль
    • -d d00m4ace: восстанавливает в базу данных 'd00m4ace'
    • -1: выполняет восстановление в одной транзакции
  3. C:\PostgreSQL\16\bin\psql -U postgres -W -d d00m4ace -1 -f 22.10.2024-11.44.23-dbbackup.sql: Эта команда выполняет SQL-скрипт для восстановления базы данных из файла резервной копии '22.10.2024-11.44.23-dbbackup.sql':

    • -U postgres: использует пользователя 'postgres'
    • -W: запрашивает пароль
    • -d d00m4ace: подключается к базе данных 'd00m4ace'
    • -1: выполняет скрипт в одной транзакции
    • -f: указывает на использование файла

Мои домены

d00m4ace.com

d00m4ace.com - https://d00m4ace.com

Редиректы 301 на d00m4ace.com:

hexplay.com

hexplay.com - https://hexplay.com