Обновление SteamOS 3.7.3 Preview
После объявления Valve о расширении SteamOS за пределы Steam Deck и запуске публичной беты:
— разработчики продолжают активно улучшать совместимость системы с другими портативными игровыми устройствами.
В марте вышла первая тестовая версия SteamOS 3.7.0, а теперь доступна новая сборка SteamOS 3.7.3 Preview — экспериментальная версия SteamOS с улучшениями.
Изменения:
— Добавлена поддержка ограничения кадровой частоты для дисплеев с переменной частотой обновления (VRR), как встроенных, так и внешних.
— Исправлен сбой, возникавший при отсутствии подключённых дисплеев.
— Добавлена поддержка кнопки питания на портативных устройствах Asus и Lenovo.
— Улучшена поддержка ввода на устройствах Asus и Lenovo.
Интересно следить за развитием этой ОС. Сам декой побаловался и лежит теперь на самой верхней полочке. Там уже, наверное, 100500 апдейтов вышло, надо глянуть👀
LinuxCamp | #news
После объявления Valve о расширении SteamOS за пределы Steam Deck и запуске публичной беты:
— разработчики продолжают активно улучшать совместимость системы с другими портативными игровыми устройствами.
В марте вышла первая тестовая версия SteamOS 3.7.0, а теперь доступна новая сборка SteamOS 3.7.3 Preview — экспериментальная версия SteamOS с улучшениями.
Изменения:
— Добавлена поддержка ограничения кадровой частоты для дисплеев с переменной частотой обновления (VRR), как встроенных, так и внешних.
— Исправлен сбой, возникавший при отсутствии подключённых дисплеев.
— Добавлена поддержка кнопки питания на портативных устройствах Asus и Lenovo.
— Улучшена поддержка ввода на устройствах Asus и Lenovo.
Интересно следить за развитием этой ОС. Сам декой побаловался и лежит теперь на самой верхней полочке. Там уже, наверное, 100500 апдейтов вышло, надо глянуть
LinuxCamp | #news
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥7❤🔥2❤1
Буквально вчера столкнулся с проблемой. Поехал, значит, на отдых и вспомнил под вечер, что надо поработать чуток. Зашел в номер, открыл ноут и начал подключаться к сети. Не думал, что столкнусь с проблемой на таком базовом действии)
Нужно было подключиться с "Debain-based" дистра к открытой сети, в которой авторизация происходила через перенаправление на определенный сайт. Такая штука называется "CaptivePortal".
Попробовал через nm-applet - не сработало. Попробовал через nmcli - аналогичная история. Начал гуглить и нашел вот тут следующее решение:
Команду нужно выполнить после базового подключения к сети. Далее вводишь, что нужно и вуаля, все работает!
LinuxCamp | Chat | #microhelp
Нужно было подключиться с "Debain-based" дистра к открытой сети, в которой авторизация происходила через перенаправление на определенный сайт. Такая штука называется "CaptivePortal".
Попробовал через nm-applet - не сработало. Попробовал через nmcli - аналогичная история. Начал гуглить и нашел вот тут следующее решение:
$ xdg-open http://$(ip --oneline route get 1.1.1.1 | awk '{print $3}')
Команду нужно выполнить после базового подключения к сети. Далее вводишь, что нужно и вуаля, все работает!
LinuxCamp | Chat | #microhelp
🔥30👍17❤🔥7🤔4
Команда chgrp и изменение атрибутов ссылок
В Linux у каждого файла есть владелец и группа. Также описываются права остальных пользователей, которые состоят из трёх пунктов: чтение, запись, выполнение. Для их изменения (определения дефолтных) используется команда umask, для изменения владельца и группы: chown и chgrp. Подробно про группы говорили тут.
Без параметров chgrp просто меняет группу для конкретного файла либо каталога:
И вот тут момент №1 - если вы меняете группу у символьной ссылки, ее атрибуты остаются нетронутыми и аффектится только целевой файл. Для того, чтобы изменить атрибут ссылки, нужно использовать флаг "-h" (аналогично для chown):
Момент №2 - если вы рекурсивно меняете группу для каталога, при обработке ссылки атрибуты выставляются именно для нее, а не файла. Для дереференса ссылок есть 2 флага: "-H" и "-L".
"-H" переходит по ссылкам и меняет атрибуты ресурсов. При переходе на каталог рекурсивная обработка для него прекращается (только каталогу группу поменяем и все). "-L" при переходе на каталог идет рекурсивно и по нему тоже.
LinuxCamp | #utils
В Linux у каждого файла есть владелец и группа. Также описываются права остальных пользователей, которые состоят из трёх пунктов: чтение, запись, выполнение. Для их изменения (определения дефолтных) используется команда umask, для изменения владельца и группы: chown и chgrp. Подробно про группы говорили тут.
Без параметров chgrp просто меняет группу для конкретного файла либо каталога:
$ sudo chgrp avengers file
-rw-rw-r-- 1 parallels avengers file
И вот тут момент №1 - если вы меняете группу у символьной ссылки, ее атрибуты остаются нетронутыми и аффектится только целевой файл. Для того, чтобы изменить атрибут ссылки, нужно использовать флаг "-h" (аналогично для chown):
$ chgrp -h parallels file_ln
lrwxrwxrwx 1 root parallels file_ln -> ../file
Момент №2 - если вы рекурсивно меняете группу для каталога, при обработке ссылки атрибуты выставляются именно для нее, а не файла. Для дереференса ссылок есть 2 флага: "-H" и "-L".
"-H" переходит по ссылкам и меняет атрибуты ресурсов. При переходе на каталог рекурсивная обработка для него прекращается (только каталогу группу поменяем и все). "-L" при переходе на каталог идет рекурсивно и по нему тоже.
$ chgrp -RH www-data /var/www
$ chgrp -RL www-data /var/www
LinuxCamp | #utils
👍20🔥10❤🔥2❤1
Linux roadmap
Набросал тут план изучения Linux для новичков. Давайте фитбек - чего бы добавили, что может быть лишним)
Основные модули:
1. Введение - понимание базовых определений, различий между "Server" и "Desktop" дистрибутивами, умение накатить линуху на виртуальную машину и физическое железо.
2. Терминал и оболочка - понимание того, что из себя представляет оболочка и какие они бывают.
3. Файловая система - разбор дерева каталогов, типов файлов, их атрибутов и прав доступа, дисков и разделов.
4. Пользователи и группы - управление пользователями/группами, работа со спец. файлами "/etc/group" и т.д. Что такое sudo и привилегии администратора.
5. Процессы и программы - понимание различий между понятиями, инструменты мониторинга процессов, управление заданиями, использование сигналов.
6. Демоны и systemd - управление и отладка демонов/сервисов.
7. Работа с пакетами - пакетные менеджеры, подключение репозиториев. Принципы управления пакетами.
8. Переменные оболочки - способы их объявления, знание основных переменных "PATH", "HOME" и т.д.
9. Продвинутая работа с оболочкой - перенаправление ввода/вывода, пайпы, шаблоны, условные списки.
10. Создание bash скриптов - базовый синтаксис, примеры, где может пригодиться набросать свой скрипт для автоматизаций.
11. Логирование и мониторинг - умение отлаживать ошибки системы и софта через syslog и journal.
12. Сети и протоколы - понимание различий между ssh, scp, ftp. Умение передавать данные с клиента на сервер и обратно. Подгрузка файлов с инета через curl и wget.
13. Конфигурация системы - структура графического окружения (wm, dm, композитинг) и его настройка.
14. Сборка софта по исходникам - базовая работа с системами (cmake, meson). Понимание файлов, которые используются для сборки (если к проекту не прилагается нормальный README)
LinuxCamp | Chat | #roadmap
Набросал тут план изучения Linux для новичков. Давайте фитбек - чего бы добавили, что может быть лишним)
Основные модули:
1. Введение - понимание базовых определений, различий между "Server" и "Desktop" дистрибутивами, умение накатить линуху на виртуальную машину и физическое железо.
2. Терминал и оболочка - понимание того, что из себя представляет оболочка и какие они бывают.
3. Файловая система - разбор дерева каталогов, типов файлов, их атрибутов и прав доступа, дисков и разделов.
4. Пользователи и группы - управление пользователями/группами, работа со спец. файлами "/etc/group" и т.д. Что такое sudo и привилегии администратора.
5. Процессы и программы - понимание различий между понятиями, инструменты мониторинга процессов, управление заданиями, использование сигналов.
6. Демоны и systemd - управление и отладка демонов/сервисов.
7. Работа с пакетами - пакетные менеджеры, подключение репозиториев. Принципы управления пакетами.
8. Переменные оболочки - способы их объявления, знание основных переменных "PATH", "HOME" и т.д.
9. Продвинутая работа с оболочкой - перенаправление ввода/вывода, пайпы, шаблоны, условные списки.
10. Создание bash скриптов - базовый синтаксис, примеры, где может пригодиться набросать свой скрипт для автоматизаций.
11. Логирование и мониторинг - умение отлаживать ошибки системы и софта через syslog и journal.
12. Сети и протоколы - понимание различий между ssh, scp, ftp. Умение передавать данные с клиента на сервер и обратно. Подгрузка файлов с инета через curl и wget.
13. Конфигурация системы - структура графического окружения (wm, dm, композитинг) и его настройка.
14. Сборка софта по исходникам - базовая работа с системами (cmake, meson). Понимание файлов, которые используются для сборки (если к проекту не прилагается нормальный README)
LinuxCamp | Chat | #roadmap
🔥65👍30❤6✍4❤🔥1🗿1
Как исправить "rm: cannot remove ‘file’: Device or Resource Busy"?
Бывало же у вас такое - заканчиваешь работать с каким-то ресурсом (файлом/каталогом/устройством), хочешь его удалить и видишь ошибку о том, что он чем-то занят (используется системой либо каким-то процессом).
Тут нужно понять, в чем конкретная причина и чем он задействован: то ли процессом, то ли это, быть может, точка монтирования для какой-то FS…
Распространенных решения вижу 2:
1. Использование команд "lsof + fuser" для определения занятых ресурсов и завершения процессов. Если вы не знаете, какая программа мешает выполнить операцию, используйте lsof:
Если у нас ресурс занимают 2 процесса, можно и через kill все грохнуть. Если их много, можно более автоматизированно - через fuser. Эта команда завершит все процессы, которые что-то используют в целевом каталоге:
После выполнение мы вырубим сразу оба процесса 22331 и 22332.
2. Определение точки монтирования. Это полезно, когда какая-нибудь флешка или внешний диск монтирован в целевой каталог. Узнать, так ли это, можно через команду mount. Допустим, у меня не получается удалить test:
Проверяем, является ли tmpfsdir точкой монтирования:
Вывод говорит о том, что в каталог tmpfsdir примонтирована FS tmpfs. Для успешного выполнения операции нужно размонтировать каталог:
LinuxCamp | Chat | #filesystem
Бывало же у вас такое - заканчиваешь работать с каким-то ресурсом (файлом/каталогом/устройством), хочешь его удалить и видишь ошибку о том, что он чем-то занят (используется системой либо каким-то процессом).
rm: cannot remove 'file-or-directory': Device or resource busy
Тут нужно понять, в чем конкретная причина и чем он задействован: то ли процессом, то ли это, быть может, точка монтирования для какой-то FS…
Распространенных решения вижу 2:
1. Использование команд "lsof + fuser" для определения занятых ресурсов и завершения процессов. Если вы не знаете, какая программа мешает выполнить операцию, используйте lsof:
$ lsof +D Sources/App/
COMMAND PID USER FD NAME
server 22331 xoadmin txt Sources/App/server
client 22332 xoadmin txt Sources/App/client
Если у нас ресурс занимают 2 процесса, можно и через kill все грохнуть. Если их много, можно более автоматизированно - через fuser. Эта команда завершит все процессы, которые что-то используют в целевом каталоге:
$ fuser -k Sources/App/
После выполнение мы вырубим сразу оба процесса 22331 и 22332.
2. Определение точки монтирования. Это полезно, когда какая-нибудь флешка или внешний диск монтирован в целевой каталог. Узнать, так ли это, можно через команду mount. Допустим, у меня не получается удалить test:
$ rm -rf test
rm: cannot remove 'test/tmpfsdir': Device or resource busy
Проверяем, является ли tmpfsdir точкой монтирования:
$ mount | grep test/tmpfsdir
none on /home/u/test/tmpfsdir type tmpfs (rw,relatime,inode64)
Вывод говорит о том, что в каталог tmpfsdir примонтирована FS tmpfs. Для успешного выполнения операции нужно размонтировать каталог:
$ sudo umount test/tmpfsdir
$ rm -rf test
LinuxCamp | Chat | #filesystem
👍33🔥13❤🔥2
Лучшие эмуляторы терминала
Эмулятор терминала - утилита, которая дает доступ к командной оболочке и позволяет нам работать с системой через CLI интерфейс.
Их, на самом деле, не 1 и не 2) Вы, возможно, привыкли к дефолтным эмуляторам оболочки от гнома там и kde. Вдруг вам чего-то в них не хватает, что есть в сторонних...
1. Terminator - ключевая фича заключается в том, что оно позволяет раскидывать свои окна по удобной сетке.
Может пригодиться, если вам не нравится переключаться по вкладкам или плодить много окон. Более подробно про него вот тут.
2. Tilix - поддерживает систему “drag and drop”. Вы можете перетащить файл в окно терминала и получите на выходе полный путь в строке ввода.
Также он удобно структурирует окна списком, по которому можно ходить через горячие клавиши. Как и Terminator может разбивать окна по сетке.
3. Guake - неплохо кастомизируется через встроенный менеджер. Сворачивается и разворачивается по горячим клавишам.
4. Alacritty - отличает от остальных его тот факт, что он “GPU-accelerated”. Это говорит о том, что для рендера он использует видюху => работает плавнее. Также он кроссплатформенный - запускается на Windows/Linux/MacOS.
Так как для рендера используется OpenGL, эмулятор позволяет более продвинуто настроить внешний вид и добавить, например, прозрачность.
Кастомизируется он через файл. Более подробно про его настройку можете почитать тут. Пример готового конфига приложу по ссылке. Также найти его можно на гите проекта в релизах.
Инструкцию по установке на Ubuntu также прикладываю.
LinuxCamp | Chat | #top
Эмулятор терминала - утилита, которая дает доступ к командной оболочке и позволяет нам работать с системой через CLI интерфейс.
Их, на самом деле, не 1 и не 2) Вы, возможно, привыкли к дефолтным эмуляторам оболочки от гнома там и kde. Вдруг вам чего-то в них не хватает, что есть в сторонних...
1. Terminator - ключевая фича заключается в том, что оно позволяет раскидывать свои окна по удобной сетке.
Может пригодиться, если вам не нравится переключаться по вкладкам или плодить много окон. Более подробно про него вот тут.
$ sudo apt install terminator
2. Tilix - поддерживает систему “drag and drop”. Вы можете перетащить файл в окно терминала и получите на выходе полный путь в строке ввода.
Также он удобно структурирует окна списком, по которому можно ходить через горячие клавиши. Как и Terminator может разбивать окна по сетке.
$ sudo apt install tilix
3. Guake - неплохо кастомизируется через встроенный менеджер. Сворачивается и разворачивается по горячим клавишам.
$ sudo apt install guake
4. Alacritty - отличает от остальных его тот факт, что он “GPU-accelerated”. Это говорит о том, что для рендера он использует видюху => работает плавнее. Также он кроссплатформенный - запускается на Windows/Linux/MacOS.
Так как для рендера используется OpenGL, эмулятор позволяет более продвинуто настроить внешний вид и добавить, например, прозрачность.
Кастомизируется он через файл. Более подробно про его настройку можете почитать тут. Пример готового конфига приложу по ссылке. Также найти его можно на гите проекта в релизах.
Инструкцию по установке на Ubuntu также прикладываю.
LinuxCamp | Chat | #top
👍28✍7🔥7❤3🥴1
Топ 5 полезных приложений на Linux
В линухе хоть и меньше толковых приложений, чем в MacOS или Windows, но они все еще есть и очень выручают:
1. Todoist - очень популярный планировщик задач. Он кроссплатформенный, в свое время использовал и на android и на ios. Ставится он через snap либо AppImage:
Есть платный и бесплатный формат использования. Мне от него требовалось только приоритизировать задачи и раскидывать их на неделю - все это включено даром.
2. Standard Notes - приложение для заметок, которое может выступать некой заменой obsidian и notion. Также ставится на разные ОС. Отлично подходит, если вы пишите какие-то сценарии либо длинные лонгриды - их удобно менеджерить. Ставится через AppImage, ссылку приложил.
3. KDE Connect - входит в десктопное окружение Plasma. Позволяет управлять мобилкой через десктоп: просматривать уведомления, уровень заряда, передавать файлы и т.д. В некоторых дистрах предоставлена по дефолту.
4. TimeShift - утилита для создания бэкапов системы (FS, настроек, конфигураций). Для Linux это может быть очень полезно, т.к. нередко новички в процессе разбирательств что-то лишнее тыкают и все ломают. Нашел отличный туториал по ее использованию. Установка:
5. Syncthing - используется для синхронизации файлов между системами. Предположим, мы постоянно работаем с каталогом Documents на компе и ноуте. Если обе системы используют syncthing и следят за Documents, то на них всегда будет актуальное содержимое этого каталога. Установка тут. Еще докину ссылку на информативный туториал.
LinuxCamp | #top
В линухе хоть и меньше толковых приложений, чем в MacOS или Windows, но они все еще есть и очень выручают:
1. Todoist - очень популярный планировщик задач. Он кроссплатформенный, в свое время использовал и на android и на ios. Ставится он через snap либо AppImage:
$ sudo snap install todoist
Есть платный и бесплатный формат использования. Мне от него требовалось только приоритизировать задачи и раскидывать их на неделю - все это включено даром.
2. Standard Notes - приложение для заметок, которое может выступать некой заменой obsidian и notion. Также ставится на разные ОС. Отлично подходит, если вы пишите какие-то сценарии либо длинные лонгриды - их удобно менеджерить. Ставится через AppImage, ссылку приложил.
3. KDE Connect - входит в десктопное окружение Plasma. Позволяет управлять мобилкой через десктоп: просматривать уведомления, уровень заряда, передавать файлы и т.д. В некоторых дистрах предоставлена по дефолту.
4. TimeShift - утилита для создания бэкапов системы (FS, настроек, конфигураций). Для Linux это может быть очень полезно, т.к. нередко новички в процессе разбирательств что-то лишнее тыкают и все ломают. Нашел отличный туториал по ее использованию. Установка:
$ sudo apt install timeshift
5. Syncthing - используется для синхронизации файлов между системами. Предположим, мы постоянно работаем с каталогом Documents на компе и ноуте. Если обе системы используют syncthing и следят за Documents, то на них всегда будет актуальное содержимое этого каталога. Установка тут. Еще докину ссылку на информативный туториал.
LinuxCamp | #top
👍25🔥10❤5🤪2💊1
GE-Proton 10-2: исправления для Windows игр на Linux, SteamOS (Steam Deck)
Proton — специальный «прослойка» от Valve, которая позволяет запускать Windows-игры на Linux. Сделана на основе Wine.
GE-Proton (GloriousEggroll Proton) — модифицированная версия Proton, которую делает разработчик с ником GloriousEggroll.
Она обновляется быстрее, включает больше фиксиков, свежие патчи и поддержку некоторых проблемных игр, которые не заводятся на официальном проекте.
Основные изменения в GE-Proton:
— Исправлена ошибка в скрипте, вызванная отсутствующей запятой, что приводило к проблемам с префиксами. Мем😁
— Добавлен патч для поддержки прокрутки с тачпада в WineWayland
— Добавлены патчи, позволяющие запускать больше лаунчеров в среде Wayland (epic, battlenet, star citizen)
— Обновлена библиотека xalia с включением изменений из основного репозитория
Вот ссылка на релиз 10-2. В гите можно подробнее ознакомиться с проектом и правками📱
LinuxCamp | #news
Proton — специальный «прослойка» от Valve, которая позволяет запускать Windows-игры на Linux. Сделана на основе Wine.
GE-Proton (GloriousEggroll Proton) — модифицированная версия Proton, которую делает разработчик с ником GloriousEggroll.
Она обновляется быстрее, включает больше фиксиков, свежие патчи и поддержку некоторых проблемных игр, которые не заводятся на официальном проекте.
Основные изменения в GE-Proton:
— Исправлена ошибка в скрипте, вызванная отсутствующей запятой, что приводило к проблемам с префиксами. Мем
— Добавлен патч для поддержки прокрутки с тачпада в WineWayland
— Добавлены патчи, позволяющие запускать больше лаунчеров в среде Wayland (epic, battlenet, star citizen)
— Обновлена библиотека xalia с включением изменений из основного репозитория
Вот ссылка на релиз 10-2. В гите можно подробнее ознакомиться с проектом и правками
LinuxCamp | #news
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍9❤🔥3😁1
Приводим хаос данных к порядку
Сегодня мы говорим о команде sort. Утилита выводит текстовые строки в определенном порядке. С помощью нее может быть отсортировано содержимое файла либо вывод какой-либо команды. Основные опции можете просмотреть на OpenNet.
Примеры использования
Создадим файл с несколькими строками, на котором и будем проверять возможности утилиты. Кста, заполнить его из CMD можно вот так:
Опция "-e" указывает команде, что нужно обрабатывать спецсимволы, а "\n" у нас - спецсимвол перевода строки. Теперь выполним сортировку строк:
После выполнения команды сам файл никак не поменяется: sort просто получает на вход данные с ресурса и итог кидает в stdout. Посмотрим на несколько принципов, по которым выполняется сортировка:
- Строки с цифрами размещаются выше других строк
- Строки, начинающиеся с букв нижнего регистра размещаются выше
- Сортировка выполняется в соответствии алфавиту
- Строки сначала сортируются по алфавиту, а уже вторично по другим правилам.
Удаление дубликатов
100% полезная опция "-u". Она удаляет дубликаты. Представьте, вам нужно проверить логи в "/var/log/syslog", которые туда посылает образный "демон". Если он пишет туда много одинаковых, вероятно, вам не нужен лишний спам. Для предварительной очистки вывода используйте "-u":
Сортировка по колонке
Давайте упорядочим вывод по конкретному полю. Для этого указываем флаг "-k" с номером колонки. Сейчас будем работать с названиями каталогов:
Сортировка по номеру
Входные данных также можем отсортировать по числовому значению. Для этого используем "-n":
LinuxCamp | #utils
Сегодня мы говорим о команде sort. Утилита выводит текстовые строки в определенном порядке. С помощью нее может быть отсортировано содержимое файла либо вывод какой-либо команды. Основные опции можете просмотреть на OpenNet.
Примеры использования
Создадим файл с несколькими строками, на котором и будем проверять возможности утилиты. Кста, заполнить его из CMD можно вот так:
$ echo -e "computer\nmouse\nLAPTOP\ndata" > test.txt
$ cat test.txt
computer
mouse
LAPTOP
data
Опция "-e" указывает команде, что нужно обрабатывать спецсимволы, а "\n" у нас - спецсимвол перевода строки. Теперь выполним сортировку строк:
$ sort test.txt
computer
data
LAPTOP
mouse
После выполнения команды сам файл никак не поменяется: sort просто получает на вход данные с ресурса и итог кидает в stdout. Посмотрим на несколько принципов, по которым выполняется сортировка:
- Строки с цифрами размещаются выше других строк
- Строки, начинающиеся с букв нижнего регистра размещаются выше
- Сортировка выполняется в соответствии алфавиту
- Строки сначала сортируются по алфавиту, а уже вторично по другим правилам.
Удаление дубликатов
100% полезная опция "-u". Она удаляет дубликаты. Представьте, вам нужно проверить логи в "/var/log/syslog", которые туда посылает образный "демон". Если он пишет туда много одинаковых, вероятно, вам не нужен лишний спам. Для предварительной очистки вывода используйте "-u":
$ sort -u /var/log/syslog
Сортировка по колонке
Давайте упорядочим вывод по конкретному полю. Для этого указываем флаг "-k" с номером колонки. Сейчас будем работать с названиями каталогов:
$ ls -l | sort -k9
... 6 user user 4096 дек 6 14:29 Android
... 3 user user 4096 янв 14 22:18 Desktop
... 5 user user 12288 янв 15 14:59 Downloads
... 7 user user 4096 янв 13 11:42 Lightworks
Сортировка по номеру
Входные данных также можем отсортировать по числовому значению. Для этого используем "-n":
$ ls -l | sort -nk2
... 5 user user 12288 янв 15 14:59 Downloads
... 6 user user 4096 дек 6 14:29 Android
... 7 user user 4096 июн 10 2015 Sources
... 8 user user 12288 янв 11 12:33 Pictures
LinuxCamp | #utils
👍29🔥10❤7
Шпора по флагам rsync
Rsync - программка, которую можно использовать для синхронизации файлов и каталогов с локального компьютера на удаленный и наоборот. Чем-то напоминает scp.
Взаимодействием с сервером возможности утилиты не ограничиваются. Все операции можно выполнять и локально. По умолчанию rsync копирует ресурсы без учета предыдущего содержимого целевого каталога.
Например, если вы перенесли каталог d, содержащий файлы a и b, на машину, на которой был файл d/c, то после копирования сервер будет содержать d/a, d/b и d/c.
Чтобы создать точную копию исходного каталога, необходимо из целевого каталога удалить не существующие в исходном каталоге файлы, например d/c в примере:
Посмотрим на еще 1 пример:
В результате выполнения, каталоги "dir1, dir2 и dir3", вместе со всем их содержимым, будут рекурсивно скопированы в каталог backup.
Если какие-то файлы уже есть в каталоге backup, и не были изменены, они будут пропущены.
Исключение файлов и каталогов
Еще одной значительной фичей rsync является способность исключать файлы и каталоги из процесса передачи.
Например, ты хочешь перенести локальный каталог src на хост и при этом исключить все данные с именем .git. Можно сделать следующим образом:
Чтобы базовые флаги всегда были под рукой, собрал небольшую шпору, сохраняем)
LinuxCamp | #utils
Rsync - программка, которую можно использовать для синхронизации файлов и каталогов с локального компьютера на удаленный и наоборот. Чем-то напоминает scp.
$ rsync file1 file2 ... user@host:dest
$ rsync -a dir host:dest_dir
Взаимодействием с сервером возможности утилиты не ограничиваются. Все операции можно выполнять и локально. По умолчанию rsync копирует ресурсы без учета предыдущего содержимого целевого каталога.
Например, если вы перенесли каталог d, содержащий файлы a и b, на машину, на которой был файл d/c, то после копирования сервер будет содержать d/a, d/b и d/c.
Чтобы создать точную копию исходного каталога, необходимо из целевого каталога удалить не существующие в исходном каталоге файлы, например d/c в примере:
$ rsync -a --delete dir host:dest_dir
Посмотрим на еще 1 пример:
$ rsync -avh --del --progress dir1 dir2 dir3 backup
В результате выполнения, каталоги "dir1, dir2 и dir3", вместе со всем их содержимым, будут рекурсивно скопированы в каталог backup.
Если какие-то файлы уже есть в каталоге backup, и не были изменены, они будут пропущены.
Исключение файлов и каталогов
Еще одной значительной фичей rsync является способность исключать файлы и каталоги из процесса передачи.
Например, ты хочешь перенести локальный каталог src на хост и при этом исключить все данные с именем .git. Можно сделать следующим образом:
$ rsync -a --exclude=.git src host:
Чтобы базовые флаги всегда были под рукой, собрал небольшую шпору, сохраняем)
LinuxCamp | #utils
🔥22👍17❤3
Пополнение софта в библиотеке
Компания Fender, известная своими гитарами и аудиооборудованием, представила новое приложение для записи и обработки звука – Fender Studio. Оно доступно на нашем Linux).
Fender Studio базируется на профессиональной DAW Studio One Pro (приложение для цифровой аудиосистемы), но предлагает упрощённый интерфейс.
Что предлагает Fender Studio?
- Интуитивный интерфейс для музыкантов, подходящий как новичкам, так и профессионалам.
- Многодорожечную запись с поддержкой VST-плагинов.
- Встроенные инструменты для обработки гитарного звука, включая эффекты и усилители.
- Совместимость с ALSA и PipeWire.
Приложение доступно для бесплатной загрузки в формате Flatpak с официального сайта. Появление утилиты – знак растущего интереса крупных компаний к открытой платформе.
LinuxCamp | #news
Компания Fender, известная своими гитарами и аудиооборудованием, представила новое приложение для записи и обработки звука – Fender Studio. Оно доступно на нашем Linux).
Fender Studio базируется на профессиональной DAW Studio One Pro (приложение для цифровой аудиосистемы), но предлагает упрощённый интерфейс.
Что предлагает Fender Studio?
- Интуитивный интерфейс для музыкантов, подходящий как новичкам, так и профессионалам.
- Многодорожечную запись с поддержкой VST-плагинов.
- Встроенные инструменты для обработки гитарного звука, включая эффекты и усилители.
- Совместимость с ALSA и PipeWire.
Приложение доступно для бесплатной загрузки в формате Flatpak с официального сайта. Появление утилиты – знак растущего интереса крупных компаний к открытой платформе.
LinuxCamp | #news
👍20🔥9❤🔥2❤2😁1
Как работает cron и зачем он нужен?
Если вы хоть раз хотели, чтобы скрипт запускался сам — без вашего участия — скорее всего, вам пригодится cron. Это системный инструмент (ДЕМОН), который позволяет выполнять команды/скрипты по расписанию.
Сфер применения достаточно много, но суть технологии - автоматизировать рутинные задачи: очистка логов, обновление данных и т.д. Как говорилось в одной из статей выше cron — демон, который выполняет команды в запланированное время.
Дополню, что он каждую минуту проверяет свое расписание, наступило ли время начинать выполнять задачу. Расписание хранится в специальной таблице — crontab и задается в формате:
Этот скрипт будет запускаться каждый день в 4:00. Звёздочка означает «каждое значение»:
* * * * * — каждую минуту, каждый час, каждый день...;
30 9 * * * — каждый день в 9:30;
0 0 * * 0 — каждое воскресенье в полночь;
На старте может быть непонятно, поэтому пользуйтесь: crontab.guru
Практический пример
Допустим у нас в какой-нибудь папке (например, /var/log/myapp) копятся логи и мы хотим удалять раз в неделю старые. Сначала создадим простой bash-скрипт clear_logs.sh:
Этот скрипт ищет ".log" файлы в указанной директории (LOG_DIR) и удаляет те, что старше 7 дней (DAYS_TO_KEEP). Делаем файл исполняемым и добавляем cron-задачу:
"0 0 * * 0" — каждое воскресенье в 00:00;
">> /var/log/clear_logs.log" — всё, что скрипт напишет в stdout (обычный вывод), попадёт в лог;
"2>&1" — перенаправление потока ошибок stderr в поток stdout, чтобы они тоже записывались в лог;
В нашем случае скрипт ничего не выводит, однако если возникнут ошибки по типу: "нет доступа к папке" или "нет прав на удаление", то они пойдут в stderr и запишутся в лог.
Важные команды:
Чтобы посмотреть список задач (расписание), можно использовать команду "crontab -l". Создание и изменение задач, команда "crontab -e". Удаление всех задач "crontab -r".
LinuxCamp | #cron
Если вы хоть раз хотели, чтобы скрипт запускался сам — без вашего участия — скорее всего, вам пригодится cron. Это системный инструмент (ДЕМОН), который позволяет выполнять команды/скрипты по расписанию.
Сфер применения достаточно много, но суть технологии - автоматизировать рутинные задачи: очистка логов, обновление данных и т.д. Как говорилось в одной из статей выше cron — демон, который выполняет команды в запланированное время.
Дополню, что он каждую минуту проверяет свое расписание, наступило ли время начинать выполнять задачу. Расписание хранится в специальной таблице — crontab и задается в формате:
* * * * * команда
┬ ┬ ┬ ┬ ┬
│ │ │ │ └── День недели (0–7) — где 0 и 7 — это воскресенье
│ │ │ └──── Месяц (1–12)
│ │ └─────── День месяца (1–31)
│ └──────── Час (0–23)
└────────── Минута (0–59)
0 4 * * * /home/user/backup.sh
Этот скрипт будет запускаться каждый день в 4:00. Звёздочка означает «каждое значение»:
* * * * * — каждую минуту, каждый час, каждый день...;
30 9 * * * — каждый день в 9:30;
0 0 * * 0 — каждое воскресенье в полночь;
На старте может быть непонятно, поэтому пользуйтесь: crontab.guru
Практический пример
Допустим у нас в какой-нибудь папке (например, /var/log/myapp) копятся логи и мы хотим удалять раз в неделю старые. Сначала создадим простой bash-скрипт clear_logs.sh:
#!/bin/bash
LOG_DIR="/var/log/myapp"
DAYS_TO_KEEP=7
find "$LOG_DIR" -type f -name "*.log" -mtime +$DAYS_TO_KEEP -exec rm -f {} \;
Этот скрипт ищет ".log" файлы в указанной директории (LOG_DIR) и удаляет те, что старше 7 дней (DAYS_TO_KEEP). Делаем файл исполняемым и добавляем cron-задачу:
chmod +x /home/user/noscripts/clear_logs.sh
0 0 * * 0 /home/user/noscripts/clear_logs.sh >> /var/log/clear_logs.log 2>&1
"0 0 * * 0" — каждое воскресенье в 00:00;
">> /var/log/clear_logs.log" — всё, что скрипт напишет в stdout (обычный вывод), попадёт в лог;
"2>&1" — перенаправление потока ошибок stderr в поток stdout, чтобы они тоже записывались в лог;
В нашем случае скрипт ничего не выводит, однако если возникнут ошибки по типу: "нет доступа к папке" или "нет прав на удаление", то они пойдут в stderr и запишутся в лог.
Важные команды:
Чтобы посмотреть список задач (расписание), можно использовать команду "crontab -l". Создание и изменение задач, команда "crontab -e". Удаление всех задач "crontab -r".
LinuxCamp | #cron
🔥31👍22❤2😢1
Новое ядро подъехало "Linux 6.15"
В новую версию принято 15945 исправлений от 2154 разрабов, размер патча - 59 МБ (добавлено 739608 строк кода). Около 41% всех изменений связаны с драйверами устройств.
Из ключевого:
— многочисленные апгрейды драйверов для AMD и Intel;
— дальнейшая интеграция Rust в ядро (язык всё активнее применяется в кодовой базе, где критична безопасность);
— стабилизация файловой системы Bcachefs (близка к полноценному применению в продуктивных сценариях);
— новая подсистема FWCTL (предназначен для управления прошивками);
— доработка поддержки Apple Silicon (архитектура ARM постепенно получает стабильные драйверы и поддержку в ядре);
— улучшения планировщика задач (положительно скажется на общей отзывчивости систем под высокой нагрузкой);
— расширение поддержки игровых контроллеров через драйвер XPad;
Подробнее о нововведениях можно прочитать тут.
LinuxCamp | #news
В новую версию принято 15945 исправлений от 2154 разрабов, размер патча - 59 МБ (добавлено 739608 строк кода). Около 41% всех изменений связаны с драйверами устройств.
Из ключевого:
— многочисленные апгрейды драйверов для AMD и Intel;
— дальнейшая интеграция Rust в ядро (язык всё активнее применяется в кодовой базе, где критична безопасность);
— стабилизация файловой системы Bcachefs (близка к полноценному применению в продуктивных сценариях);
— новая подсистема FWCTL (предназначен для управления прошивками);
— доработка поддержки Apple Silicon (архитектура ARM постепенно получает стабильные драйверы и поддержку в ядре);
— улучшения планировщика задач (положительно скажется на общей отзывчивости систем под высокой нагрузкой);
— расширение поддержки игровых контроллеров через драйвер XPad;
Подробнее о нововведениях можно прочитать тут.
LinuxCamp | #news
👍31🔥13❤4👏2
Продвинутый просмотр размера каталога: du
Вы сейчас можете подумать, есть же команда "ls -l", которая показывает расширенный список атрибутов... Размер каталога значит тоже должна выводить. Ну, нет) Для этого нам нужно использовать утилиту du, которая для этих целей подойдет отлично.
Размер каталога
В качестве примера возьмем папку Downloads и выведем ее размер:
Для лучшего понимания вкратце пройдемся по задействованным опциям:
-s - выводить только общий размер самой папки и не отображает информацию о ее вложенных ресурсах. Тем самым, не захламляя stdout;
-h - выводить информацию в привычном виде. Речь о единицах измерения (K – килобайт, M – мегабайт и т. д.);
Размер файлов на верхнем уровне
Также можно глянуть общий размер только файлов на самом верхнем уровне каталога. Для этого добавляем опцию "-S". Тут мы не пойдем вглубь и не станем проверять ресурсы внутри образного "~/Downloads/dir1" и т.д:
Размер вложенных каталогов
В результате отобразится сначала размер вложенных каталогов, а потом и самого "Downloads" С помощью опции --max-depth можно задать максимальную глубину вложенности. Если вам интересен только верхний каталог, то глубина == 0, если еще и вложенные в нее, то >= 1:
Это будет особенно полезно, когда директория сильно разрослась, и нужно ограничить область действия для утилиты.
Размер файлов с учетом вложенности
Также можно увидеть размер целевого каталога и всех ресурсов внутри (с учетом вложенности). Для этих целей нужно приписать флаг "-a":
Если данных на выходе получается слишком много, то может иметь смысл их отсортировать по размеру:
LinuxCamp | #utils
Вы сейчас можете подумать, есть же команда "ls -l", которая показывает расширенный список атрибутов... Размер каталога значит тоже должна выводить. Ну, нет) Для этого нам нужно использовать утилиту du, которая для этих целей подойдет отлично.
Размер каталога
В качестве примера возьмем папку Downloads и выведем ее размер:
$ sudo du -sh ~/Downloads
96M /home/parallels/Downloads
Для лучшего понимания вкратце пройдемся по задействованным опциям:
-s - выводить только общий размер самой папки и не отображает информацию о ее вложенных ресурсах. Тем самым, не захламляя stdout;
-h - выводить информацию в привычном виде. Речь о единицах измерения (K – килобайт, M – мегабайт и т. д.);
Размер файлов на верхнем уровне
Также можно глянуть общий размер только файлов на самом верхнем уровне каталога. Для этого добавляем опцию "-S". Тут мы не пойдем вглубь и не станем проверять ресурсы внутри образного "~/Downloads/dir1" и т.д:
$ sudo du -sSh ~/Downloads
92M /home/parallels/Downloads
Размер вложенных каталогов
$ sudo du -h ~/Downloads
В результате отобразится сначала размер вложенных каталогов, а потом и самого "Downloads" С помощью опции --max-depth можно задать максимальную глубину вложенности. Если вам интересен только верхний каталог, то глубина == 0, если еще и вложенные в нее, то >= 1:
$ sudo du -h --max-depth=1 /etc
16K /etc/lighttpd
8.0K /etc/python3
56K /etc/iproute2
Это будет особенно полезно, когда директория сильно разрослась, и нужно ограничить область действия для утилиты.
Размер файлов с учетом вложенности
Также можно увидеть размер целевого каталога и всех ресурсов внутри (с учетом вложенности). Для этих целей нужно приписать флаг "-a":
$ sudo du -ah ~/Downloads
96M ...Downloads/code_1.99.3-1744760597_arm64.deb
4.0K ...Downloads/file-part_2
4.0K ...Downloads/file-part_1
Если данных на выходе получается слишком много, то может иметь смысл их отсортировать по размеру:
$ sudo du -ah ~/Downloads | sort -rh
96M .../Downloads/code_1.99.3-1744760597_arm64.deb
96M .../Downloads
20K .../Downloads/test
LinuxCamp | #utils
👍35🔥11❤7🤔1