====== Дневник сисадмина ====== --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/12/10 01:35// ===== Планировщик заданий Crontab ===== Изучаю планировщик заданий Crontab посмотреть задачи cron для текущего пользователя (нужно запускать именно от нужного пользователя) crontab -l Редактирование заданий (нужно запускать именно от нужного пользователя) crontab -e После завершения работы команды cron файл будет обработан и все правила будут добавлены в /var/spool/cron/crontabs/имя_пользователя причем добавленные процессы будут запускаться именно от того пользователя, от которого вы их добавляли. ==== Примеры команд в файле Crontab ==== После перезагрузки @reboot /path/to/job.sh Запускать работу cron каждый день в 2 часа ночи: 0 2 * * * /path/to/job.sh Моя команда от рута @reboot /home/dima/Скрипты/монтирование.sh Моя команда от dima 0 2 * * * /home/dima/Скрипты/архивирование.sh --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/11/12 11:51// Заметил, что если примонтировать внешний HDD к домашнему каталогу -- то можно без проблем на него заходить через любимый SSH. --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/11/04 16:11// ===== Сбор информации о аппаратной части системы ===== Вся информация lshw Информация о процессоре lshw -class processor или cat /proc/meminfo Информация об установленной оперативной памяти lshw -class memory --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/10/31 15:51// ===== Подключение к Windows файловой системы удалённого Linux-сервера по SSH ===== [[https://litl-admin.ru/fajlovye-sistemy/kak-k-windows-podklyuchit-fajlovuyu-sistemu-udalyonnogo-linux-servera-po-ssh.html|Внешняя ссылка]] Хочу попробовать на работе так подключиться по внешнему ip 195.46.164.136! --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/10/30 14:07// Хочу установить Samba в контейнере [[https://hub.docker.com/r/dperson/samba|(докер-хаб)]]. Хочу дать доступ к Nextcloud через интернет, для этого нужно отредактировать параметр «trusted_domains» в файле «config/config.php» (прокинул через valumes). nano /DATA/docker-project/Nextcloud/data/config.php Нужно добавить строку 1 => '195.46.164.136:86', --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/10/29 17:39// После долгого перерыва продолжаю вести этот блог. Устроился сисадмином на работу администрирую винду. Узнал новые вещи: docker. --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/07/12 08:58// ===== Слайдер Фоторама ===== [[https://fotorama.io/docs/4/]] --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/07/09 22:35// Постепенное анимирование меню: style="transition: 0.3s;" --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/07/03 08:32// ===== Библиотека анимации для сайта ===== [[https://youtu.be/yDkf0D1THMc]] Основной сайт: [[https://animate.style/]] ===== Редакторы статических сайтов ===== [[https://sitey.ru/prog_master/1635-admin_for_landingpage.html]] CMSLAND {{ :системное_администрирование:cmsland.zip |}} TEXTOLITE {{ :системное_администрирование:textolite-2.12.zip |}} --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/06/30 17:09// ===== JSON ===== [[https://evilinside.ru/nastrojka-cors-v-nginx/#|Настройка CORS в Nginx]] --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/06/28 10:04// ===== Красивый WEB-интерфейс на Python ===== Красивый графический интерфейс на Python | Все фишки Flet [[https://youtu.be/xiINVRTBIgI]] [[https://losst.pro/zapusk-python-skripta-v-linux|Запуск python скрипта в Linux]] --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/06/15 22:39// Хочу попробовать галерею [[https://dimsemenov.com/plugins/magnific-popup/|"Magnific Popup"]]. --- //[[ageev-dmitrijj@rambler.ru|Дмитрий Владимирович Агеев]] 2023/06/13 12:28// Хочу поизучать WorldPress с точки зрения верстальщика [[https://www.youtube.com/playlist?list=PL3LQJkGQtzc6Nwz67GGrMdqxim1c0H5DC]]. ===== Посадка сайта на wordpress ===== (натяжка верстки на wordpress) [[https://youtu.be/ApZV2z46nd4]] ===== Оптимизация png ===== Изучаю оптимизацию изображений в Linux [[https://losst.pro/szhatie-png-v-linux#Оптимизация_изображений_PNG_в_Linux]] Уменьшение размера png без потерь качества. Установка optipng sudo apt install optipng Переходим в нужную папку cd ~/Изображения Смотрим занимаемый размер, после чего пишем optipng *.png У меня было 64,8 МБ, стало 57,1 МБ (уменьшилось на 12%) 07.06.2023 ===== Проксирование ===== Изучаю проксирование (то есть переброску сайтов с других портов на 80) server { listen 80; server_name xn--b1adnahcy5b.xn----8sbgdcjatak4a3cza.xn--p1ai; #server_name докувики.дмитрий-агеев.рф; location / { #пробую proxy_pass http://localhost:8080/; # #получилось #proxy_pass http://192.168.1.106:19999; #мониторинг нагрузки сервера на ноутбуке #proxy_pass http://localhost:8080/phpmyadmin/; #phpmyadmin на ноутбуке #proxy_pass http://192.168.1.101:8096; #медиасервер Jellyfin на неттопе #proxy_pass http://192.168.1.101:1515; #панель управления OpenServer на неттопе #proxy_pass http://195.46.164.136:1515; #панель управления OpenServer на неттопе #proxy_pass http://localhost:8080/; #стартовая страница на ноутбуке на 8080 порту #proxy_pass http://192.168.1.101; #страница на неттопе на 80-м порту #proxy_pass http://localhost:8080/proxi/index.html; #proxy_pass http://192.168.1.106:8080/proxi/index.html; #proxy_pass http://195.46.164.136:8080/proxi/index.html; #когда пишешь полный url, то номер порта не высвечивается #PHP работает!!! #proxy_pass http://localhost:8080/proxi-php/index.php; #вот так точно не работает! #proxy_pass http://195.46.164.136:8080/proxi/; #не получается как надо (частично что-то заработало) #proxy_pass http://localhost:8080/dokuwiki/doku.php?id=start; #proxy_pass http://localhost:9091/; #proxy_set_header Authorization "Basic dima:1"; #не получилось #proxy_pass http://192.168.1.106:4781; #нексклауд на ноуте #proxy_pass http://195.46.164.136:8085/www2/index.html; #proxy_pass http://192.168.1.106:8080/dokuwiki/index.php; #proxy_pass http://localhost:8080/dokuwiki/index.php; #proxy_pass https://mbukcson42.ru/index.php; #Позволяет переопределять или добавлять поля заголовка запроса, #передаваемые проксируемому серверу. proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } 05.06.2023 Завёл себе на reg.ru свой кириллический домен [[http://дмитрий-агеев.рф]]. 04.06.2023 Попробую программу htop sudo apt install htop htop 03.06.2023 Отключил брандмауэр в Билайне, теперь работает 80-й порт! 31.05.2023 =====Установка и настройка DNS-сервера===== [[https://youtu.be/JlrV1-jd-4w] [[https://www.dmosk.ru/miniinstruktions.php?mini=bind-ubuntu]]] ====bind9==== установка sudo apt install bind9 запуск sudo systemctl start named добавим в автозагрузку sudo systemctl enable named настройка sudo nano /etc/bind/named.conf.options дописываем для настройки сервера только для локальной сети allow-query { 192.168.1.0/24; }; Перезагружаем сервис sudo systemctl restart bind9 На винде устанавливаем только DNS-сервер 192.168.1.1 и проверяем на форточке! Создадим локальную зону .local [[https://www.dmosk.ru/miniinstruktions.php?mini=bind-primary]] Открываем конфигурационный файл bind sudo nano /etc/bind/named.conf.local и прописываем zone "local" { type master; file "/home/dima/local.zone.conf"; allow-update { none; }; }; allow-update { none; }; -- список хостов, с которых разрешено обновление записей в зоне. Переходим в домашний каталог cd и создаём там файл зоны nano local.zone.conf дописал netbook IN A 192.168.1.101 noutbook IN A 192.168.1.106 Не сработало. Советуют так сделать [[https://madmentat.ru/index.php/shpargalki/2-uncategorised/45-nastrojka-dns-servera-bind9-named-v-debian-ubuntu-mint]] Настройки зон хранятся в файле sudo nano /etc/bind/named.conf Поэтому идём по пути sudo nano /etc/bind/named.conf.local Дописываем zone "home" { type master; file "/etc/bind/forward.home"; }; allow-transfer { 192.168.1.106; }; also-notify { 192.168.1.106; }; }; zone "88.168.192.in-addr.arpa" { type master; file "/etc/bind/reverse.home"; allow-transfer { 192.168.1.106; }; also-notify { 192.168.1.106; }; }; sudo nano /etc/bind/forward.home Теперь создадим обратную зону sudo nano /etc/bind/reverse.home Теперь протестируем всю эту ерунду: sudo named-checkconf /etc/bind/named.conf sudo named-checkconf /etc/bind/named.conf.local Если ничего не возвращается, тогда ваши настройки верны и можно ехать дальше. sudo named-checkzone home /etc/bind/forward.home Вывод команды должен быть таким: zone home/IN: loaded serial 2011071001 OK Тестим реверс: sudo named-checkzone home /etc/bind/reverse.home Не работало, потому, что порт был не 80, а 8085. Не получилось. Установлю более простой DNS сервер [[https://habr.com/ru/articles/713156/]] УРААА! Получилось. Вот шаги: Установите ====Dnsmasq==== sudo apt-get install dnsmasq Установите resolvconf: sudo apt-get install resolvconf Необязательный шаг. Установите net-tools: sudo apt-get install net-tools Отредактируйте файл sudo nano /etc/dnsmasq.conf no-resolv\\ server=192.168.1.1\\ listen-address=0.0.0.0\\ bind-interfaces Добавьте в файл /etc/hosts необходимые домены и их IP адреса. sudo nano /etc/hosts Например: 1.2.3.4 myserver.tst Перезапустите машину: sudo shutdown -r now Хочу на порт 8085 перенаправить запросы! Хочу попробовать DNS-сервер ====MaraDNS==== [[https://ru.linux-console.net/?p=4138#gsc.tab=0]] 29.05.2023 =====Миграция части dokuwiki на Linux===== cd /home/dima/Сайты/start.local wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz tar -xzvf dokuwiki-stable.tgz ll mkdir dokuwiki.local 28.05.2023 Хочу перенести все свои сайты и настройки сайтов в свою домашнюю директорию cd ~ создаём директорию Сайты и в ней подкаталог Настройки_сайтов копируем туда существующие настройки Пропишем новые каталоги sudo nano /etc/nginx/nginx.conf include /home/dima/Сайты/Настройки_сайтов проверяем корректность настроек nginx sudo nginx -t переносим сайты cd /usr/share/nginx/html cp -r /usr/share/nginx/html/* /home/dima/Сайты cd /home/dima/Сайты Теперь у меня такая структура: tree -L 3 ~/Сайты /home/dima/Сайты ├── start.local │   ├── index.php │   └── phpmyadmin └── Настройки_сайтов ├── default ├── grhtr ├── site2.loc.conf └── webdav.conf Переделал скрипты, теперь они запускаются без sudo!!! Поставлю скрипт backup.sh в расписание crontab crontab -e 0 3 * * * /home/dima/Скрипты/backup.sh Справка по crontab # .---------------- минуты (0 - 59) # |  .------------- часы (0 - 23) # |  |  .---------- дни месяца (1 - 31) # |  |  |  .------- сами месяцы (1 - 12) OR jan,feb,mar,apr ... # |  |  |  |  .---- дни недели (0 - 6) (0 или 7 это воскресенье в зависимости от настроек системы) # | | | | | можно использовать сокращения типа mon,tue,wed,thu,fri,sat,sun # |  |  |  |  | # *  *  *  *  * команда, которую нужно запустить Источник: https://fuzeservers.ru/os/vypolnenie-skripta-sh-iz-cron.html В файле /etc/crontab можно настроить запуск скриптов от рута!!! sudo nano /etc/crontab Попробую выполнить скрипт от рута после перезагрузки sudo nano /etc/crontab @reboot sleep 60 && root /home/dima/Скрипты/restart_system.sh -- не получилось @reboot sleep 180 && sudo /home/dima/Скрипты/restart_system.sh Просмотр логов crontab grep CRON /var/log/syslog Вывод первых 10 строк grep -m10 CRON /var/log/syslog Чтобы не было сообщения о том , что почта не отправлена (No MTA installed, discarding output) надо дописать в sudo nano /etc/crontab MAILTO="" Для вывода последних строк файла используется команда tail\\ последние 2 строки файла syslog tail -n 2 /var/log/syslog последняя запись grep CRON /var/log/syslog | tail -n 1 grep CRON /var/log/syslog | grep restart_system.sh 27.05.2023 ===== Использование ssh ключа вместо пароля ===== Продолжаю изучать использование ssh ключа вместо пароля https://losst.pro/avtorizatsiya-po-klyuchu-ssh https://losst.pro/kak-polzovatsya-putty генерация ключей ssh ssh-keygen Дописываем публичный ключ id_rsa.pub в файл ~/.ssh/authorized_keys на сервере cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys Скопируем секретный ключ cp ~/.ssh/id_rsa ~/Шара/Чтение Расположение WindowsPowerShell: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Прописываем в винде расположение секретного ключа ssh-add C:\Users\user\id_rsa -- Не получилось. Попробую сгенерить ключи в винде и добавить публичный ключ на сервер https://losst.pro/kak-polzovatsya-putty https://youtu.be/Ld9xoFVeiS0 (для PuTTY) sudo service ssh restart ssh -i закрытый ключ dima@192.168.1.106 Пробую ещё раз sudo service ssh restart ssh -i C:\Users\user\id_rsa dima@192.168.1.106 исследую консольный браузер curl 25.05.2023 =====программирование на Bash===== [[https://youtu.be/qZjnr66Cys4]] Изучаю использование ssh ключа вместо пароля [[https://youtu.be/-KOMKBtL_7I]] 23.05.2023 =====потоковое вещание через VLC===== rtsp://192.168.1.106:8554/kamera (Веб-браузер его никак не воспринимает, а VLC норм)\\ сделаю проброску портов на внешний ip. rtsp://195.46.164.136:8554/kamera =====Счётчик строк (слов)===== выведем список пакетов dpkg -l отфильтруем: покажем только те строчки, которые начинаются с символа ii dpkg -l | grep "^ii" подсчитаем количество таких строчек dpkg -l | grep "^ii" | wc -l поиск пакета в репозитории apt search server подсчитаем число строк в результате вывода apt search server | wc -l 1292\\ Много! Отфильтруем результат вывода игнорируя регистр (-i) apt search server | grep -i web apt search server | grep -i web | wc -l 29 результатов -- норм!!! apt-cache search server | grep -i web | wc -l 389 результатов Значит просто apt search ищет не по всем репозиториям надо юзать apt-cache search\\ попробуем подсчитать время поиска time apt-cache search server | grep -i web | wc -l 6,245s ещё фильтранём apt-cache search server | grep -i web | grep -i http time apt-cache search server | grep -i web | grep -i http | wc -l 37 результатов за 6,2 секунды =====Очистка файла от комментариев===== Например test.conf просмотр less test.conf (cat test.conf) видим много комментов (начинаюстся с #) делаем бекап старого файла cp test.conf test.conf.old grep -v "#" test.conf.old > test.conf смотрим новый файл cat test.conf подсчитаем строки cat test.conf | wc -l 20 cat test.conf.old | wc -l 91 =====Сжатие файлов и каталогов===== tar -czvf test.conf.old.tar.gz test.conf.old tar -cjvf test.conf.old.tar.bz2 test.conf.old Здесь * -с --create Создать новый архив * -z компрессор gzip * -j компрессор bzip2 * -v --verbose Выводить подробную информацию процесса
* -f --file Вывести результат в файл распаковка tar -xzvf archive.tar.gz tar -xjvf archive.tar.bz2 Здесь -x --extract Извлечь файлы из архива gzip быстрее работает, bzip2 лучше жмёт -- сравним!!! Есть папка etc 24,2 МБайт 1. time tar -czvf etc.tar.gz etc 0m1,438s 2,6 МБайт (11%) 2. time tar -cjvf etc.tar.bz2 etc 0m8,614s 2,1 МБайт (9%) проработал дольше в 6 раз, сжал лучше в 1,2 раза (на 19%) Теперь без вывода информации 1'. time tar -czf etc.tar.gz etc 0m1,024s (быстрее в 1,4 раза!!! на 0,414с) 2'. time tar -cjf etc.tar.bz2 etc 0m8,482s (быстрее на 0,132с) Теперь распаковка time tar -xzvf etc.tar.gz 0m1,073s time tar -xjvf etc.tar.bz2 0m2,115s (дольше в два раза) [[https://www.youtube.com/live/KWueT7hiwwY?feature=share]] всего обращений к серверу nginx awk '{print $1}' /var/log/nginx/access.log | wc -l число уникальных обращений к серверу nginx awk '{print $1}' /var/log/nginx/access.log | sort -u | wc -l выведем список обращений с уникальных ip-адресов вместе с количеством обращений awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -n ________________________ =====монтирование дисков===== [[https://youtu.be/kj77Z_3WoS0]] перейду в домашний каталог cd ~ создам папку ntfs mkdir ntfs просмотр информации о дисках sudo fdisk -l монтирование sudo mount /dev/sda2 /home/dima/ntfs размонтирование sudo umount /home/dima/ntfs вариант с указанием файловой системы sudo mount -t ntfs /dev/sda2 /home/dima/ntfs у меня работает и так и так добавим запись о монтировании в /etc/fstab sudo nano /etc/fstab /dev/sda2 /home/dima/ntfs none bind 0 0 СЛОМАЛ СИСТЕМУ Монтирование расшареных windows-ресурсов в Linux через CIFS [[https://newadmin.ru/montirovanie-smb/]] sudo apt install cifs-utils cd ~ mkdir nettop_share sudo mount -t cifs -o username=Гость,password= //192.168.1.101/local_net /home/dima/nettop_share отсоединим sudo umount /home/dima/nettop_share автоматическое монтирование sudo nano /etc/fstab //192.168.1.101/local_net /home/dima/nettop_share cifs Гость,ro, 0 0 СЛОМАЛ СИСТЕМУ Лучше написать скрипт для монтирования sudo nano #!/bin/bash mount /dev/sda2 /home/dima/ntfs mount -t cifs -o username=Гость,password= //192.168.1.101/local_net /home/dima/nettop_share sudo chmod ugo+x restart_system.sh ./restart_system.sh [[https://losst.pro/avtozagruzka-linux]] sudo nano /lib/systemd/system/runscript.service [Unit]\\ After=network.target\\ [Service]\\ ExecStart=/scripts/restart_system.sh\\ [Install]\\ WantedBy=multi-user.target\\ Осталось выставить правильные права: sudo chmod 644 /lib/systemd/system/runscript.service Затем обновить конфигурацию и добавить в автозагрузку Linux новый скрипт: sudo systemctl daemon-reload sudo systemctl enable runscript.service 21.05.2023 =====Делаю переадресацию через HTML===== В файле index.html пишем Хочу попробовать Kody на ноутбуке [[https://losst.pro/kak-polzovatsya-kodi]] Пришлось вручную запускать Kody на ноуте и настраивать его там. Не понравился - неудобное управление и раскрывается на весь экран. Удаляю! Хочу заблокировать входящее соединение Kemerovo.golden.ru (80.255.153.1, 195.46.164.136) sudo iptables -A INPUT -s 195.46.164.136 -j DROP sudo iptables -A OUPUT -s 80.255.153.1 -j DROP сохраняем конфигурацию sudo iptables-save 18.05.2023 Пропишем в конфиге SAMBA sudo nano /etc/samba/smb.conf w rite list = dima чтобы править папку чтение с винды sudo systemctl reload smbd 17.05.2023 =====Запускаем скрипт автоматически по расписанию===== [[https://losst.pro/nastrojka-cron]] здесь лежат скрипты, которые запускаются ежедневно (имя без точки) cd /etc/cron.daily sudo cp /scripts/backup.sh /etc/cron.daily/backup ll создаём жёсткую сылку (чтобы копировался скрипт backup.sh) sudo ln /etc/cron.daily/backup /scripts/ 16.05.2023 =====Современные протоколы для обмена данными по сети===== SFTP - (англ. SSH File Transfer Protocol) — протокол прикладного уровня передачи файлов, работающий поверх безопасного канала. Спокойно подключается к линукс!!! (на линуксе запущен OpenSSH) SCP - (от англ. secure copy) сетевой протокол, основанный на протоколе BSD RCP, который поддерживает передачу файлов между хостами в сети. SCP использует защищенную оболочку (SSH) для передачи данных и использует те же механизмы для аутентификации, тем самым обеспечивая подлинность и конфиденциальность передаваемых данных. Спокойно подключается к линукс!!! (на линуксе запущен OpenSSH) Я хочу создать каталог для scp c двумя подкаталогами 1. свободный 'free' 2. гостевой доступ 'read_only' Создаю от пользователя dima mkdir /var/www/SCP cd SCP mkdir free mkdir read_only повышаю права sudo chmod -R 777 /var/www/SCP/free Создадим пользователя для SCP с домашним каталогом /var/www/SCP sudo useradd scp -d /var/www/SCP Назначим пароль 'scp' sudo passwd scp ГОТОВО!!! После переделки Сделал шару в одну папку /var/www/share подпапки free (d rwx r-x r-x) read_only (777) владелец dima изменяю права повышаю права sudo chmod -R 777 /var/www/share/free sudo chmod -R 755 /var/www/share/read_only изменю каталог пользователя scp sudo usermod -d /var/www/share/ scp медиасервер На сотовом VLC не хочет видеть файлы из интернета, Сх-Проводник спокойно!!! Так что попробую установить на винду свободный медиасервер Jellyfin [[https://repo.jellyfin.org/releases/server/windows/stable/]] порт 8096 Аналоги MiniDLNA, Emby(есть платная версия которую НАВЯЗЧИВО рекламируют -----------) 15.05.2023 =====Настройка FTP на удалёнку===== [[https://geckich.blogspot.com/2012/08/server-sent-passive-reply-with.html]] Для начала откройте в вашем роутере порты 4242...4252 для локального адреса фтп-сервера connect_from_port_20=YES pasv_enable=YES pasv_addr_resolve=YES pasv_address=myaddress.dyndns.com pasv_min_port=4242 pasv_max_port=4252 [[https://youtu.be/eqSMlIgNDZg]] 14.05.2023 =====install_nexcloud===== [[https://notabug.org/Black_Triangle/Manual_Nextcloud_on_Orange_Pi]] устанавливаем PHP и нужные нам пакеты sudo apt install php8.1 php8.1-gd php8.1-sqlite3 php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-mysql php8.1-bz2 php8.1-intl php8.1-smbclient php8.1-imap php8.1-gmp установка СУБД MariaDB sudo apt install mariadb-server открываем СУБД MariaDB sudo mysql -u root -p1 создаём БД nextcloud CREATE DATABASE nextcloud; создадим юзера dima [password=1] CREATE USER 'dima'@'localhost' IDENTIFIED BY '1'; даём пользователю dima все привилегии GRANT ALL PRIVILEGES ON nextcloud.* TO 'dima'@'localhost'; выходим из СУБД quit загрузка Nextcloud cd /usr/share/nginx/html/ sudo wget https://download.nextcloud.com/server/releases/latest.tar.bz2 sudo tar -xvf latest.tar.bz2 создаём каталог данных для работы с Nextcloud sudo mkdir -p /usr/share/nginx/html/nexcloud/data передаем управление sudo chown -R www-data:www-data /usr/share/nginx/html/nexcloud/ даем разрешения sudo chmod 755 /usr/share/nginx/html/nexcloud/ потом активировируем созданный виртуальный хост nginx sudo ln -s /etc/nginx/sites-available/nexcloud.conf /etc/nginx/sites-enabled/nexcloud.conf выполните эту команду, чтобы убедится, что вы не допустили ошибок sudo nginx -t перечитайте конфигурацию nginx: sudo nginx -s reload [[https://www.dmosk.ru/miniinstruktions.php?mini=nextcloud-ubuntu#webserver ]] 13.05.2023 =====Резервное копирование (скрипт)===== https://www.dmosk.ru/scripts.php?object=fs-backup Переходим в домашнюю папку cd ~ Создаем каталог для скриптов и сам скрипт: sudo mkdir /scripts sudo nano /scripts/samba_backup.sh Копируем: #!/bin/bash PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin # Каталог для резервирования source="/etc/nginx/sites-available/" # здесь лежат настройки сайтов destination_root="/var/www/smb/free2/архивы" fdate=$(date +%Y-%m-%d) # очистка старых архивов через 7 дней find ${destination_root}/ -type f -name "*.tar.gz" -ctime +7 -exec rm -R {} \; 2>&1 # Синхронизация данных с помощью rsync # Выполнение синхронизации данных в каталог 'день' rsync -a --partial --inplace --append --delete-after ${source}/ ${destination_root}/день/ # Неделя if [[ $(date +%u) -eq 0 ]] then rsync -a --partial --inplace --append --delete-after ${source}/ ${destination_root}/неделя/ fi # Создание архива count_last_archives=$(find ${destination_root}/ -name "*.tar.gz" -mtime -30 | wc -l) if [[ $count_last_archives -eq 0 ]] then cd ${source} tar zcf ${destination_root}/samba_${fdate}.tar.gz ./* fi Разрешаем выполнять скрипт sudo chmod ugo+x samba_backup.sh запускаем скрипт для проверки sudo ./samba_backup.sh Автоматический запуск по расписанию crontab -e И добавляем строку: 0 3 * * * /scripts/samba_backup.sh * в данном примере мы будем запускать резервирование каждый день в 3 часа ночи. Пишем логи с помощью shell cd /scripts sudo nano log1.sh Вписываем # читаем содержимое файла log1.txt в переменную log1 log1=$(<"/var/www/smb/free2/архивы/log1.txt"); # Перезаписываем полностью файл echo "новое">/var/www/smb/free2/архивы/log1.txt; echo "$log1">>/var/www/smb/free2/архивы/log1.txt; Это чтобы дописывать в начало файла Разрешаем выполнять скрипт sudo chmod ugo+x log1.sh Запускаем скрипт ./log1.sh Поучусь выводить дату и время echo $(date +%u) echo $(date +%Y%m%d%H%M%S) echo $(date +%d.%m.%Y" "%H:%M:%S) Дописываем дату в начало файла с конкатенацией строк #!/bin/bash # читаем содержимое файла log1.txt в переменную log1 log1=$(<"/var/www/smb/free2/архивы/log1.txt"); # Перезаписываем полностью файл Dat="Начало операции: "; Dat="$Dat$(date +%d.%m.%Y" "%H:%M:%S)"; echo $Dat>/var/www/smb/free2/архивы/log1.txt; echo "$log1">>/var/www/smb/free2/архивы/log1.txt; Другой лог с выводом времени и времени исполнения #!/bin/bash start_time=$(date +%s) new_log='начало выполнения '$(date +%d.%m.%Y" "%H:%M:%S) sleep 2 new_log=$new_log' конец выполнения '$(date +%d.%m.%Y" "%H:%M:%S) end_time=$(date +%s) time_interval=$(( end_time-start_time )) new_log=$new_log' время выполнения '$time_interval' секунд' echo $new_log Полный скрипт #!/bin/bash # https://www.dmosk.ru/scripts.php?object=fs-backup PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin start_time=$(date +%s) log_new='начало выполнения '$(date +%d.%m.%Y" "%H:%M:%S) # Каталог для резервирования source="/etc/nginx/sites-available/" # здесь лежат настройки сайтов destination_root="/var/www/smb/free2/архивы" fdate=$(date +%Y-%m-%d) # очистка старых архивов через 7 дней find ${destination_root}/ -type f -name "*.tar.gz" -ctime +7 -exec rm -R {} \; 2>&1 # Синхронизация данных с помощью rsync # Выполнение синхронизации данных в каталог 'день' rsync -a --partial --inplace --append --delete-after ${source}/ ${destination_root}/день/sites-available/ # Еженедельная синхронизация в каталог неделя if [[ $(date +%u) -eq 0 ]] then rsync -a --partial --inplace --append --delete-after ${source}/ ${destination_root}/weekly/sites-available/ fi # Создание архива count_last_archives=$(find ${destination_root}/ -name "*.tar.gz" -mtime -30 | wc -l) if [[ $count_last_archives -eq 0 ]] then cd ${source} tar zcf ${destination_root}/sites-available_${fdate}.tar.gz ./* fi ################################################################# # Каталог для резервирования source="/usr/share/nginx/html" # здесь лежат сайты destination_root="/var/www/smb/free2/архивы/" fdate=$(date +%Y-%m-%d) # очистка старых архивов через 7 дней find ${destination_root}/ -type f -name "*.tar.gz" -ctime +7 -exec rm -R {} \; 2>&1 # Синхронизация данных с помощью rsync # Выполнение синхронизации данных в каталог 'день' rsync -a --partial --inplace --append --delete-after ${source}/ ${destination_root}/день/html # Неделя if [[ $(date +%u) -eq 0 ]] then rsync -a --partial --inplace --append --delete-after ${source}/ ${destination_root}/неделя/html fi # Создание архива #count_last_archives=$(find ${destination_root}/ -name "*.tar.gz" -mtime -30 | wc -l) #if [[ $count_last_archives -eq 0 ]] #then # cd ${source} # tar zcf ${destination_root}/html_${fdate}.tar.gz ./* #fi ################################################################# # Каталог для резервирования source="/scripts" # здесь лежат скрипты destination_root="/var/www/smb/free2/архивы/" fdate=$(date +%Y-%m-%d) # очистка старых архивов через 7 дней find ${destination_root}/ -type f -name "*.tar.gz" -ctime +7 -exec rm -R {} \; 2>&1 # Синхронизация данных с помощью rsync # Выполнение синхронизации данных в каталог 'день' rsync -a --partial --inplace --append --delete-after ${source}/ ${destination_root}/день/scripts # Неделя if [[ $(date +%u) -eq 0 ]] then rsync -a --partial --inplace --append --delete-after ${source}/ ${destination_root}/неделя/scripts fi # Создание архива #count_last_archives=$(find ${destination_root}/ -name "*.tar.gz" -mtime -30 | wc -l) #if [[ $count_last_archives -eq 0 ]] #then # cd ${source} # tar zcf ${destination_root}/html_${fdate}.tar.gz ./* #fi log_new=$log_new' конец выполнения '$(date +%d.%m.%Y" "%H:%M:%S) end_time=$(date +%s) time_interval=$(( end_time-start_time )) log_new=$log_new' время выполнения '$time_interval' с' # читаем содержимое файла в переменную log log_old=$(<"/var/www/smb/free2/архивы/backup.log"); # Перезаписываем полностью файл echo $log_new>/var/www/smb/free2/архивы/backup.log; echo "$log_old">>/var/www/smb/free2/архивы/backup.log; =====Дамп БД===== sudo mysqldump --all-databases > /var/www/smb/free2/архивы/backup_bd-mariadb.sql mysqldump -u dima -p1 seafile-db > /var/www/smb/free2/архивы/seafile-db.sql mysqldump -u root -p1 seafile-db > /var/www/smb/free2/архивы/seafile-db.sql mysqldump -u dima -p1 --all-databases > /var/www/smb/free2/архивы/backup_bd-mariadb.sql Теперь с архивированием mysqldump -u dima -p1 --all-databases | gzip > /var/www/smb/free2/архивы/backup_bd-mariadb.sql.gz 24.04.2023 =====Настройка сервера NFS на Linux===== [[https://www.dmosk.ru/miniinstruktions.php?mini=nfs-server-ubuntu]] apt install nfs-kernel-server Расшарим папку /var/www/nfs sudo nano /etc/exports добавляем строку /var/www/nfs 192.168.1.1/24(rw,no_root_squash,no_subtree_check) Выполним экспорт данных exportfs -a Проверим статус systemctl status nfs-server 24.04.2023 =====Установка и настройка transmission===== [[http://192.168.1.106:9091]] путь к папке загрузок cd ~ pwd узнаём, что мы в /home/dima Доступ к папке /home/dima/torrents так, чтобы пользователь dima мог читать и писать, а остальные только читать. sudo chmod 777 /home/dima/torrents sudo nano /etc/samba/smb.conf [smb_torrents] comment = Torrents path = /home/dima/torrents public = yes writable = yes read only = yes write list = dima guest ok = yes create mask = 0777 directory mask = 0777 force create mode = 0777 force directory mode = 0777 перезапуск самба sudo systemctl restart smbd В ДОМАШНЕЙ ПАПКЕ НЕ ПОЛУЧИЛОСЬ СДЕЛАТЬ ТАК буду делать в обшей /var/www/smb/torrents sudo mkdir /var/www/smb/torrents sudo chmod 777 /var/www/smb/torrents sudo nano /etc/samba/smb.conf [smb_torrents] comment = Public Folder Read Only path = /var/www/smb/torrents public = yes writable = yes read only = yes write list = dima guest ok = yes create mask = 0777 directory mask = 0777 force create mode = 0777 force directory mode = 0777 перезапуск самба sudo systemctl restart smbd 10.05.2023 Устанавливаем облачный сервис =====Seafile + мемкэш===== [[https://obu4alka.ru/install-seafile-ubuntu-server.html]] Начнем с установки memcached. Для установки вводим: sudo apt install memcached libmemcached-dev Настроим установленный сервис memcached sudo nano /etc/memcached.conf -m 512 Перезапускаем сервис и разрешаем его автозапуск: sudo systemctl restart memcached sudo systemctl enable memcached Статус sudo systemctl status memcached Создаем каталог, в который загрузим установочные файлы Seafile sudo mkdir -p /opt/seafile На официальном сайте копируем ссылку на архив с приложением и загружаем его на наш сервер cd /opt/seafile sudo wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_10.0.1_x86-64.tar.gz После загрузки распакуем наш архив: sudo tar zxf seafile-server_10.0.1_x86-64.tar.gz -C /opt/seafile/ --strip-components 1 sudo chmod -R 777 /opt/seafile/ sudo chmod -R 777 /opt/conf Запускаем скрипт установки seafile сервера sudo ./setup-seafile-mysql.sh имя сервера: seafile ip: 192.168.1.106 порт по умолчанию 80821 sudo ./seafile.sh start sudo ./seahub.sh start проверим все ли действительно запустилось на нашем сервере netstat -tupnl 24.04.2023 =====Настройка сервера NFS на Linux===== [[https://www.dmosk.ru/miniinstruktions.php?mini=nfs-server-ubuntu]] apt install nfs-kernel-server Расшарим папку /var/www/nfs sudo nano /etc/exports добавляем строку /var/www/nfs 192.168.1.1/24(rw,no_root_squash,no_subtree_check) Выполним экспорт данных exportfs -a Проверим статус systemctl status nfs-server [[https://youtu.be/_nxYdk-xNkY]] [[https://kubuntu.ru/node/3046]] установка sudo apt install nfs-kernel-server проверка поддержки на упровне ядра cat /proc/filesystems | grep nfs проверка работы сервера sudo rpcinfo -p | grep nfs добавляем nfs в автозагрузку sudo systemctl enable nfs-server проверяем статус сервера sudo systemctl status nfs-server создаём каталог sudo mkdir /var/www/nfs/share назначаем полные права на каталог sudo chmod 777 /var/www/nfs/share экспортируем папку /var/www/nfs/share sudo nano /etc/exports в конец добавляем строку /var/www/nfs/share 192.168.0.0/24(rw,root,squash,async,subtree_check) перезгрузка nfs sudo exportfs -a вывод расшаренных папок sudo exportfs Почитать сети и маски в linux 28.04.2023 про листинг в nginx (список файлов и каталогов) [[https://umutcanbolat.com/how-to-enable-directory-listing-in-nginx/]] про красивый листинг [[https://habr.com/ru/articles/353478/]] Мониторинг сервера [[https://itsecforu.ru/2018/08/29/как-установить-средство-мониторинга-ne-2/]] Использую netdata dashboard 06.05.2023 сайты nginx по умолчанию лежат в /usr/share/nginx/html сделаю их доступными через SMB sudo chmod -R 777 /usr/share/nginx/html sudo nano /etc/samba/smb.conf [www_notebook_linux] comment = www path = /usr/share/nginx/html public = yes writable = yes read only = yes write list = dima guest ok = yes create mask = 0777 directory mask = 0777 force create mode = 0777 force directory mode = 0777 перезапуск самба sudo systemctl restart smbd Теперь то же самое но в дирректории по умолчанию /var/www/html sudo chmod -R 777 /var/www/html sudo nano /etc/samba/smb.conf [www_notebook_linux2] comment = www path = /var/www/html public = yes writable = yes read only = yes write list = dima guest ok = yes create mask = 0777 directory mask = 0777 force create mode = 0777 force directory mode = 0777 перезапуск самба sudo systemctl restart smbd выполните эту команду, чтобы убедится, что вы не допустили ошибок sudo nginx -t перечитайте конфигурацию nginx: sudo nginx -s reload =====Установка FTP-сервера===== [[https://youtu.be/azVmY1SHcT4]] перевод мануала [[https://nemcd.com/2008/06/perevod-manuala-ftp-servera-vsftpd/]] Просмотр пользователей cat /etc/passwd или sed 's/:.*//' /etc/passwd Удалим лишних вместе с их домашними директориями (-r) sudo userdel -r user1 Создадим пользователя ftp_user1 вместе с домашним каталогом (-m) sudo useradd -m ftp_user1 sudo useradd ftp1 -m проверим, появидся ли домашний каталог cd /home ls -l создадим пароль пользователя sudo passwd ftp_user1 создаём группу пользователей для сервера sudo addgroup myusers добавляем пользователя ftp_user1 в группу myusers sudo usermod -G myusers ftp_user1 создадим для пользователя ftp_user1 несколько папок sudo mkdir /home/ftp_user1/share_ftp sudo mkdir /home/ftp_user1/www sudo mkdir /home/ftp_user1/test-no_visible_ftp создадим пользователю ftp_user1 права на его папки sudo chown ftp_user1:myusers /home/ftp_user1/share_ftp sudo chown ftp_user1:myusers /home/ftp_user1/www создадим пользователю ftp_user1 права на его директории sudo chown 555 /home/ftp_user1 Отредактируем настройки ftp-сервера sudo nano /etc/vsftpd.conf 1. Запретим анонимных пользователей anonymouse_enable=NO 2. local_enable=YES 3. Чтобы пользователи не выходили за пределы назначенных им каталогов снимаем комментарии с chroot_list_enable=YES ----------- СПОРНО, ТОГДА ЮЗЕРЫ НЕ СМОГУТ ПИСАТЬ, но у меня получилось!!! 4. Чтобы пользователи могли писать в каталог раскомментировал write_enable=YES Почти всё получилось. Теперь попроще: задам ftp-user2 (без пароля) sudo useradd -m ftp-user2 ls -l /home sudo usermod -G myusers ftp-user2 Проверка -- неудача, не пускает без пароля! sudo passwd ftp-user2 sudo systemctl reload vsftpd Проверка -- неудача, не назначены видимо права на папку! sudo usermod -G myusers ftp-user2 sudo chown ftp-user2:myusers /home/ sudo chown 555 /home/ftp-user2 Ещё одна инструкция\\ Создаем нового пользователя sudo useradd твой-пользователь2 sudo passwd твой-пользователь2 Создаем группу для пользователей с полным доступом к /var/www sudo groupadd dostupwww sudo chgrp -R dostupwww /var/www sudo chmod -R 770 /var/www Добавляем нужных пользователей в группу доступа sudo usermod -a -G dostupwww твой-пользователь1 sudo usermod -a -G dostupwww твой-пользователь2 После этого только члены группы dostupwww (существовавший ранее твой-пользователь1 и только созданный твой-пользователь2) смогут читать, записывать или выполнять что-либо в каталоге /var/www Мой новый юзер ftp1, а его папка /var/www/ftp Нашёл в инете [[https://losst.pro/nastrojka-ftp-v-centos-8]] =====полное удаление пакета (с вычищением настроек)===== sudo apt -p remove vsftpd переименование mv файл1 файл2 автозапуск сервера при перезагрузки sudo systemctl enable vsftpd.service старт сервиса sudo systemctl start vsftpd.service остановка сервиса sudo systemctl stop vsftpd.service обновление конфигурации сервиса на лету sudo systemctl reload vsftpd.service статус сервиса sudo systemctl status vsftpd.service =====Настройка Samba-сервера===== [[https://youtu.be/btyEFj-a3Qs]] [[https://www.dmosk.ru/instruktions.php?object=samba-ubuntu#share-anonymous]] создаём папки sudo mkdir /var/www/smb sudo mkdir /var/www/smb sudo mkdir /var/www/smb/free sudo mkdir /var/www/smb/free2 задаём права sudo chmod 777 /var/www/smb/free2 установка sudo apt install samba настройка конфигурации sudo nano /etc/samba/smb.conf [free2]\\ comment = Public Folder\\ path = /var/www/smb/free2\\ public = yes\\ writable = yes\\ read only = no\\ guest ok = yes\\ create mask = 0777\\ directory mask = 0777\\ force create mode = 0777\\ force directory mode = 0777\\ Перезапуск SMB sudo systemctl restart smbd или sudo service smbd restart Проверка sudo service smbd status В винде \\192.168.1.106 Доступ к папке по логину и паролю sudo mkdir /var/www/smb/smb_stable sudo chmod 777 /var/www/smb/smb_stable sudo nano /etc/samba/smb.conf добавляем пользователя в samba sudo smbpasswd -a dima перезапуск самба sudo systemctl restart smbd Доступ к папке так, чтобы пользователь dima мог читать и писать, а остальные только читать. sudo mkdir /var/www/smb/smb_roq sudo chmod 777 /var/www/smb/smb_roq sudo nano /etc/samba/smb.conf [smb_read-only-quest]\\ comment = Public Folder Read Only\\ path = /var/www/smb/free2\\ public = yes\\ writable = yes\\ read only = yes\\ write list = dima\\ guest ok = yes\\ create mask = 0777\\ directory mask = 0777\\ force create mode = 0777\\ force directory mode = 0777\\ перезапуск самба sudo systemctl restart smbd 22.04.2023 [[https://ubunlog.com/ru/lemp-nginx-mariadb-установка-php-ubuntu-20-04/#Instalar_MariaDB]] =====установить пакет Nginx===== sudo apt install nginx запустить службу Nginx sudo systemctl start nginx Проверка в браузере http://192.168.1.106/ =====Установка MariaDB===== sudo apt install mariadb-server mariadb-client Проверка (установить пароль root и безопасный экземпляр MariaDB) sudo mysql CREATE USER 'phpadmin'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON *.* TO 'phpadmin'@'localhost' WITH GRANT OPTION; exit Установить PHP-FPM (Менеджер процессов PHP-FastCGI) sudo apt install php-fpm php-mysql php-cli перезапустите PHP-FPM sudo systemctl restart php8.1-fpm.service Проверка статуса PHP-FPM sudo systemctl status php8.1-fpm.service =====Создание сайтов===== Создание сайта без PHP cd /usr/share/nginx/html sudo mkdir site1.loc cd site1.loc sudo nano index.html Содержимое index.html Сайт на сервере linux Mint

Чистый HTML без PHP

создание конфигурации виртуального хоста cd /etc/nginx/sites-available/ sudo cp default site1.loc.conf sudo nano site1.loc.conf Вписываем server { listen *:80; server_name site1.loc; root /usr/share/nginx/html/site1.loc; index index.html index.htm; location / {} } активировать созданный виртуальный хост nginx sudo ln -s /etc/nginx/sites-available/site1.loc.conf /etc/nginx/sites-enabled/site1.loc.conf убедитесь, что файлы из этого каталога подключены в основном конфигурационном файле cat /etc/nginx/nginx.conf выполните эту команду, чтобы убедится, что вы не допустили ошибок sudo nginx -t перечитайте конфигурацию nginx: sudo nginx -s reload Создание сайта c PHP cd /usr/share/nginx/html sudo mkdir site2.loc cd site2.loc sudo nano index.php (редактирование sudo nano /usr/share/nginx/html/site2.loc/index.php) Содержимое index.php Сайт на сервере linux Mint

Сайт с PHP

создание конфигурации виртуального хоста cd /etc/nginx/sites-available/ sudo cp site1.loc.conf site2.loc.conf sudo nano site2.loc.conf Проверка версии PHP php -v Вписываем server { listen *:80; server_name site1.loc; root /usr/share/nginx/html/site1.loc; index index.php; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; } } активировать созданный виртуальный хост nginx sudo ln -s /etc/nginx/sites-available/site2.loc.conf /etc/nginx/sites-enabled/site2.loc.conf выполните эту команду, чтобы убедится, что вы не допустили ошибок sudo nginx -t перечитайте конфигурацию nginx: sudo nginx -s reload [[https://eternalhost.net/base/vps-vds/nginx-ustanovka-phpmyadmin-ubuntu]] =====Установка PhpMyAdmin===== sudo apt -y install phpmyadmin (в окне из выбора апачи или lighttp ничего не выбираем и жмём ok) Создание конфига PhpMyAdmin в Nginx sudo nano /etc/nginx/sites-available/phpmyadmin.conf В созданный файл вносятся следующие строки: server { listen *:80; server_name phpmyadmin.loc; root /usr/share/phpmyadmin/; index index.php; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; } } 21.04.2023 =====Установить снап пакет nexcloud ===== https://www.8host.com/blog/ustanovka-i-nastrojka-snap-paketa-nextcloud-v-ubuntu-16-04/ Документация https://github.com/nextcloud-snap/nextcloud-snap Меняем порт Несклауд sudo snap set nextcloud ports.http=81 22.02.2023 ===== Отправка данных с метеостанции на сайт ===== Статья по теме. [[https://19dx.ru/2016/03/vyvod-pokazanij-s-meteostancii-na-svoj-sajt/]] 1. Создаём БД station1 на сервере. 2. Создаём в ней таблицу w1 с полями id, время, температура. перенёс БД st1 на хостинг с паролем PB3ZY6JDESeLYLLJ 12.12.2022 Пробую в XigmaNAS сохранить конфигурацию: получилось. Не получается восстановить конфигурацию: пишет Error: Failed to write configuration file '/cf/boot/loader.conf.local' (Ошибка: Не удалось записать конфигурационный файл '/cf/boot/loader.conf.local'). Попробую создать файл /cf/boot/loader.conf.local с правами 777. Пришлось перезагрузить сервер. Всё получилось!!! Хочу создать два виртуальных диска по 50ГБ и объединить их в райд массив (RAID1) {{ :системное_администрирование:mount1.png |}} Написал: "UFS и ZFS являются родными файловыми системами XigmaNAS. Попытка использовать другие файловые системы такие как ext2, ext3, EXT4, FAT, FAT32 или NTFS может привести к непредсказуемым результатам, порче файлов и потере данных!" Хоть и пишет в управлении HDD, что файловая система "Неизвестно или не отформатировано". Но данные с примонтированного диска читает без проблем. Дилемма UFS или ZFS. ZFS -- более новая и продвинутая. Выберу её! https://youtu.be/oWbk8a23i6M UFS менее требовательна к железу -- выберу её! 26.11.2022 =====Запуск питона на линуксе===== https://losst.pro/zapusk-python-skripta-v-linux - Создаём файл my1.py c содержанием: print("Привет, мир!") - Для того чтобы запустить скрипт необходимо передать его интерпретатору Python. Для этого просто откройте терминал с помощью сочетания клавиш Ctrl + Alt + T, перейдите в папку со скриптом и выполните: python3 my1.py. - Чтобы не писать интерпретатор вначале перед каждым запуском надо: 1. в скрипте my1.py добавить сверху строчку #!/usr/bin/python (указываем интерпретатор в самом скрипте); 2. Сохранить изменения, а затем сделать файл скрипта исполняемым с помощью команды: chmod ugo+x my1.py. И тогда можно запустить скрипт, просто введя в терминале: ./my1.py (./ -- указывает на текущий каталог). - Если убрать расширение .py и переместить скрипт в каталог, находящийся в переменной PATH, например /usr/bin/, то его можно будет выполнять вот так: my1. 25.11.2022 ===== XigmaNAS ===== Установил на винде на виртуальную машину ОС XigmaNAS (Бывшая Nas4free) https://ru.wikipedia.org/wiki/XigmaNAS (видеоинструкция https://youtu.be/X_jyJcIRYaY). Очень простая, не требовательная к ресурсам (съела 1,18GB оперативки и почти не грузит процессор!) {{ :xignanas.png?600 |}} Статья про настройку https://itigic.com/ru/xigmanas-guide-to-installing-and-configuring-nas/ Имя пользователя для доступа к администрированию - «admin», а пароль - «xigmanas». ===== TrueNAS ===== В дальнейшем хочу попробовать TrueNAS (бывшая FreeNAS) https://ru.wikipedia.org/wiki/FreeNAS. TrueNAS Core -- бесплатная версия. Обзор https://dzen.ru/media/servernews/freenas-umer-da-zdravstvuet-truenas-5f904dd2c2b29d2294ec9e99. Говорят, что она много ресурсов жрёт {{ :truenas.png?600 |}} 24.11.2022 Каким-то чудом появился NexCloud на http://ubuntu_html.loc ===== Установка СУБД MariaDB и PhpMyAdmin (LEMP) ===== [[https://blog.sedicomm.com/2018/07/18/ustanovka-nginx-mariadb-php-i-phpmyadmin-v-ubuntu-18-04/]] Проверка статуса nginx: systemctl status nginx Проверка, успешно ли установлен пакет Nginx: вводим в браузере [[http://192.168.1.106/]] (должна быть надпись Welcome to nginx! ...) Установка СУБД MariaDB: apt install mariadb-server mariadb-client Проверка статуса: systemctl status mysql Установка PhpMyAdmin для администрирования баз данных: apt install phpmyadmin Получаем доступ к интерфейсу phpMyAdmin в своем браузере, создав следующую символическую ссылку: ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin Поскольку индексный файл phpmyadmin — index.php, добавляем его в список индексных файлов, в файле конфигурации сервера по умолчанию /etc/nginx/sites-available/default Установка соответствующих разрешений для корневого каталога phpmyadmin, чтобы предотвратить ошибки доступа: chmod 775 -R /usr/share/phpmyadmin/ chown root:nginx -R /usr/share/phpmyadmin/ 23.11.2022 Хочу на винде видеть в сетевом окружении ПК на Linux: 1. В винде рабочая группа называется WORKGROUP\\ 2. Создаём в линуксе рабочую группу groupadd WORKGROUP\\ 3. Добавляем пользователя: usermod -a -G WORKGROUP dima\\ 4. Информация о группе: cat /etc/passwd\\ 5. Переходим в каталог с конфигурацией самба: cd /etc/samba\\ 6. Редактируем конфигурационный файл: nano smb.conf\\ Добавил в [global] workgroup = WORKGROUP\\ 7. [[https://youtu.be/HmkIAyle3DE]] На винде (0x80070035 Не найден сетевой путь -- у меня так было): [win]+[R] gpedit.msc Конфигурация компьютера -> Административные шаблоны -> Сеть -> Рабочая станция Lanman -> Включить небезопасные сетевые входы -> Включено 22.11.2022 ===== SAMBA ===== https://youtu.be/jWqh0P7Xreo 1. Редактируем конфигурационный файл samba: nano /etc/samba/smb.conf [global] map to guest = Bad User security = USER idmap config * : backend = tdb [share] path = /usr/share/man force user = nobody guest ok = Yes [записываемая шара на ноутбуке] path = /var/samba/writable guest ok = yes read only = no [только читаемая шара на ноутбуке] path = /var/samba/read-only guest ok = yes read only = yes 2. Проверяем правильность настройки samba: testparm 3. Выставляем нужные права на папку 4. Перезапуск samba: service smbd restart Или: service smbd stop service smbd start ===== FTP-сервер ===== https://itproffi.ru/ustanovka-i-nastrojka-ftp-servera-v-linux/ ===== Права доступа в Линукс ===== [[https://habr.com/ru/post/469667/]] Настроил торрент-клиент Transmission на удалённый доступ (http://192.168.1.106:9091/transmission/web). Правда пришлось вручную на ноутбуке включать опцию для удалённого доступа в самом клиенте. Настроил папку torrents в /var/samba, для закачки торрентов по умолчанию. Папки расшаривать лучше в общих директориях, например /var/samba. Папки пользователей (/home/dima) под защитой! 21.11.2022 Установка web-сервера Nginx на Linux Ubuntu и публикация web-сайта [[https://youtu.be/0GVrh18Nfmc]] Публикация нескольких web-сайтов на web-сервере Apache под Linux Ubuntu [[https://www.youtube.com/watch?v=A87OkBNZ2Sw]] Установка PHP и MySQL поверх ngnix ([[https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04-ru]]): сделал всё как в статье и всё заработало!!! Только версию PHP изменил на 8.2! ===== Удалённое управление через SSH ===== [[https://youtu.be/aP1ObrA1Fn4]] Выставил PubkeyAuthentication no (логин dima пароль 1) [[https://losst.pro/ustanovka-ssh-ubuntu-16-04]]