Архив метки: Ubuntu

Samba и большие файлы

Samba - набор программ для обмена файлами по локальной сети совместимый с технологиями передачи файлов в windows. Установили вы Samba, настроили все как нужно, но только решили передать по сети большой файл размером больше 1 гигабайта, как сервер рушиться, соединение отваливается или скорость передачи совсем никакая, сталкивались с такой проблемой? Я тоже. По умолчанию samba не всегда корректно настроена для работы с большими файлами. Решение в конфигурационном файле /etc/samba/smb.conf.

Строку socket options приведите к такому виду:

socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=65536 SO_SNDBUF=65536

Здесь мы отключаем задержку, и увеличиваем буферы передачи данных:

  • TCP_NODEALY IPTOS_LOWDELAY - отключение задержки TCP
  • SO_KEEPALIVE - поддерживать соединение
  • SO_RCVBUF - размер буфера входящих данных
  • SO_SNDBUF - размер буфера для исходящих данных

Сохраните изменения и перезапустите сервер. Теперь большие файлы должны передаваться корректно.

Настройка x11vnc в Ubuntu

Довольно часто может понадобиться подключиться к удаленному компьютеру. Если это сервер, то можно подключиться по ssh. Но если это домашний компьютер, то намного удобнее использовать графическую оболочку. Во многих случаях это позволяет намного быстрее выполнить привычные обычному пользователю действия. Есть несколько способов и несколько протоколов, с помощью которых можно получить удаленный доступ к графическому интерфейсу, но самый популярный и самый используемый из них - VNC.

В этой небольшой статье будет рассмотрена настройка x11vnc на Ubuntu. Мы погорим о том как установить VNC в Ubuntu, а также как добавить его в автозагрузку с помощьюs systemd. А теперь перейдем непосредственно к инструкции.
Читать далее Настройка x11vnc в Ubuntu

Как добавить скрипт в автозагрузку Ubuntu

Иногда возникает необходимость выполнить свой скрипт во время загрузки системы или при входе пользователя в систему. Например, чтобы запустить определенную программу, поменять настройки разрешения экрана, запустить программу удалённого управления и так далее.

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

Создание скрипта для автозагрузки

Скорее всего, у вас уже есть скрипт, который вы хотите запускать. Но если нет, или же вы хотите попрактиковаться с другим скриптом, то создайте скрипт в папке /usr/local/bin. Эта папка обычно используется для хранения пользовательских бинарных файлов. Дальше в этой статье я буду использовать путь к скрипту /usr/local/kovalets-script.sh:

sudo vi /usr/local/kovalets-script.sh

#!/bin/bash
echo "Hello world" > ~/file

Этот скрипт просто выводит строчку "Hello world" в файл в домашней папке текущего пользователя. Более подробно о создании скриптов читайте в статье написание скриптов на Bash. Когда скрипт будет готов, сделайте его исполняемым:

sudo chmod ugo+x /usr/local/kovalets-script.sh

Вы можете запустить скрипт и убедится что он работает. А теперь давайте рассмотрим как добавить скрипт в автозагрузку Ubuntu.

Автозагрузка скрипта при старте системы

В Systemd нет способа запускать все пользовательские скрипты в одном месте. Но вы можете создать юнит файл, который будет запускать ваш скрипт. Для этого используйте следующую команду:

sudo systemctl edit --force --full script.service

Команда откроет текстовый редактор, добавьте в него такое содержимое:

[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/local/kovalets-script.sh
[Install]
WantedBy=multi-user.target

В строчке ExecStart можно прописать либо путь к скрипту, который надо выполнить, либо саму команду. Кроме того, здесь используется тип сервиса Idle, который означает что процесс не будет разветвляться.

Теперь добавьте этот скрипт в автозагрузку:

sudo systemctl enable script

Если Systemd не видит такого сервиса, обновите информацию о юнитах с помощью команды:

sudo systemctl daemon-reload

После этого скрипт запустится во время инициализации системы. Вы можете убедится что всё работает, перезагрузив систему и посмотрев в папку /root. Там должен появится файл с текстом Hello world.

Если вам больше нравится старый способ загрузки скриптов, с помощью rc.local, вы можете создать файл /etc/rc.local, сделать его исполняемым и прописать путь к нему в строке ExecStart юнит-файла, после чего сможете им пользоваться как это было до появления Systemd.

Автозагрузка скрипта при входе пользователя

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

1. Автозагрузка Gnome в GUI

Запустите утилиту Автоматически запускаемые приложения или Startup Applications в главном меню системы. Эту же утилиту можно запустить из терминала выполнив команду:

gnome-session-properties

Нажмите кнопку Добавить (Add) и в открывшемся окне, в поле Команда (Command) введите полный путь к файлу вашего скрипта или выберите его с помощью кнопки Обзор (Browse), затем нажмите Добавить (Add) внизу окна:

Скрипт будет выполнен после загрузки графической оболочки Ubuntu. Вы можете перезагрузить систему и убедится, что в домашней папке вашего пользователя появился файл file, с содержимым "Hello world".

2. Автозагрузка Gnome вручную

Всё описанное в предыдущем пункте можно сделать и вручную, без утилиты Startup Applications. Ярлыки приложений для автозагрузки могут находится в двух расположениях:

  • /etc/xdg/autostart/ - для всех пользователей;
  • ~/.config/autostart/ - для текущего пользователя.

Для создания ярлыка, который будет запускать ваш скрипт, создайте файл с расширением .desktop в одной из папок со следующим содержимым:

vi ~/.config/autostart/script.desktop

[Desktop Entry]
Name=Script
Type=Application
Exec=/usr/local/kovalets-script.sh

Здесь в поле Exec необходимо прописать путь к скрипту, который надо выполнить, а в поле Name имя ярлыка. После этого ваш скрипт будет запускаться автоматически при входе пользователя в графическую оболочку. Утилита Startup Applications будет видеть этот ярлык и вы можете управлять им там тоже.

3. Автозагрузка в Systemd

Система инициализации Systemd позволяет запускать отдельный набор сервисов для каждого пользователя. Для управления такими сервисами нужно использовать опцию --user. Используйте такую команду для того чтобы создать файл скрипта:

systemctl edit --user --force --full script.service

[Unit]
Description=My Script Service
After=default.target
[Service]
Type=idle
ExecStart=/usr/local/kovalets-script.sh
[Install]
WantedBy=default.target

Юнит файл будет создан только для текущего пользователя. В данном случае это будет файл /home/sergiy/.config/systemd/user/script.service. Обратите внимание, что цель multi-user.target здесь недоступна, поэтому следует использовать default.target. Теперь осталось только добавить этот юнит в автозагрузку:

systemctl enable --user script.service

Поле этого можно перезагрузить систему и убедится что всё работает.

Выводы

Теперь вы знаете как добавить скрипт в автозагрузку Linux несколькими способами. Это может быть немного сложно для начинающих, но вы можете ознакомиться ещё со статьей про Автозагрузку сервисов, а также Управление службами для того чтобы лучше понимать как всё работает.

Список установленных программ в Ubuntu

Многих новых пользователей Linux интересует, как посмотреть список установленных программ в Ubuntu. Не важно зачем: может вам нужно удалить ту или иную программу, или просто посмотреть, сколько программ в системе установлено. Или же вам необходимо экспортировать список всех программ, чтобы потом быстро установить их в другой системе. Сделать это можно несколькими способами.

Начнём с более простого способа - с помощью главного меню. Откройте меню, затем перейдите в категорию Приложения, в разделе все вы можете увидеть ярлыки установленных программ:

 

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

 

Второй способ — с помощью центра приложений. Откройте менеджер приложений, щелкнув по его значку на боковой панели:

 

 

Выберите вкладку Установлено:

И снова здесь не все приложения, а только установленные через центр приложений или snap-пакеты. Каждую программу можно удалить или посмотреть дополнительную информацию:

 

 

 

Способ третий — более сложный и потребует установки дополнительного программного обеспечения — менеджера пакетов. Запустите терминал (Ctrl + Alt + T) и наберите:

sudo apt install synaptic

Установка пакетов — действие от суперпользователя, поэтому система спросит пароль. Когда процесс закончится, найдите программу в главном меню и откройте её. Затем перейдите в СостоянияУстановленные:

 

В списке будут отображены все пакеты,  установленные через пакетный менеджер apt, в том числе библиотеки и сервисы. Но тут нет пакетов, установленных через snap. Здесь также можно удалять и устанавливать приложения. Сначала их надо выбрать, а потом нажать кнопку Применить.

 

Способ четвёртый — с помощью консольной утилиты dpkg. Будет выведена аналогичная информация, что и в synaptic, только в терминале. Откройте терминал и наберите:

dpkg -l

Утилита выведет список всех установленных пакетов с указанием версии, архитектуры и краткого описания:

 

Чтобы посмотреть список пакетов Ubuntu, установленных через пакетный менеджер snap, используйте такую команду в терминале:

snap list

Как видите, посмотреть список абсолютно всех программ в одном месте нельзя. Самый полный список показывают утилиты dpkg и synaptic. Есть и другие способы, но этого, я думаю, будет вполне достаточно. Удачи вам в экспериментах, и не удалите ничего нужного!

Диспетчер задач и диспетчер устройств в Linux

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

lspci

Для запуска диспетчера задач выполним команду

top

Можно установить htop, он удобнее чем top. Команда для установки

apt install htop

команда для запуска

htop

"Убиваем" зависшие приложения в Linux

Хоть Linux и стабильная операционная система, но иногда и тут бывают казусы, в виде зависшего приложения, либо зависания всей системы в целом. К примеру у меня бывают такие случаи после запуска windows-приложения, либо родной программы. Система отказывается реагировать на нажатие клавиш, мыши и т.д. Как правило вы должны сами понять, после чего это произошло, последняя запущенная программа, игра и т.д. Если операционная система Ubuntu «висит» наглухо, то с вероятностью в 99.99% вам поможет следующее. На клавиатуре нажимаем: Ctrl — Alt — F1, (вместо F1 можно нажать любую системную клавишу от F1 до F6) После этого вы попадете в виртуальную  консоль. Перед вами появится черный экран. Нужно ввести ваш логин (ник) и пароль. Далее запускаем программу-мониторинг процессов Top

top

Если вдруг программа не запустится, то установите ее:

sudo apt-get install top

Теперь после запуска top вы увидите все запущенные процессы и приложения. Находим в списке подозреваемую программу, из-за которой и могло быть вызвано зависание системы, и запоминаем или записываем ее PID. Это число из самой левой колонки. Как правило оно состоит из 4 или 5 цифр. Далее нажимаем K, потом вводим цифру PID программы и жмем Enter 2 раза. После этого выбранная программа должна пропасть из списка запущенных. Далее нажимаем Ctrl — Alt — F7 и попадаем на нашу рабочую Ubuntu. После этого все должно работать.

Установка драйверов в Linux на принтеры Canon

Расскажу-ка я вам как установить драйвера для принтеров Canon, марок PIXUS, MX, MP, IP и MG в Ubuntu 14.04/13.10/13.04/12.10/12.04, а также Linux Mint 16/15/14/13. Думаю в остальных дистрибутивах на ядре Linux всё будет работать так же 🙂

Читать далее Установка драйверов в Linux на принтеры Canon

Установка Samba сервер на Debian и Ubuntu

Samba — программа, которая позволяет обращаться к сетевым дискам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части.
Samba предоставляет службы файлов и печати для различных клиентов Microsoft Windows и может интегрироваться с операционной системой Windows Server, либо как основной контроллер домена (PDC), либо как член домена. Она также может быть частью домена Active Directory.

1) Устанавливаем самбу на Debian/Ubuntu

sudo apt-get install libcups2 samba samba-common

Затем указываем в какой рабочей группе работают компьютеры в сети. (данный вопрос выплывает не всегда, по умолчанию может использоваться группа WORKGROUP) 

2) Добавим пользователя и создадим нужные каталоги.
Добавим пользователя user10 в систему
*вместо user10 впишите свое.

sudo adduser user10

и вводим пароль для него.

Добавим пользователя в Samba

sudo smbpasswd -a user10

и вводим пароль для пользователя user10

Создаем каталоги, создадим два каталога, первый будет доступен только пользователю, второй будет общей шарой.

sudo mkdir /home/share/
sudo mkdir /home/share/share

назначим права на созданные каталоги

sudo chmod 777 /home/share/share

3) Добавляем информацию о каталогах в конфиг.

sudo nano /etc/samba/smb.conf

и в самый низ добавляем следующие

[homes]
comment = Home Directories    browseable = no    valid users = %S    writable = yes create mask = 0700    directory mask = 0700

[share]
comment = All users upload and download path = /home/share/share create mode = 0777 directory mask = 0777 available = yes browsable = yes public = yes writable = yes

и перезапускаем Samba server

sudo /etc/init.d/samba restart

4) После чего в сетевом окружении Windows появится ПК с хостнеймом сервера, что бы зайти на него нужно ввести имя и пароль пользователя которого Вы создали в шаге 2.

Устанавливаем DHCP Server на Debian и Ubuntu

Здесь я расскажу как на Debian или Ubuntu поднять DHCP сервер для раздачи IP адресов компьютерам в локальной сети.

Установка достаточно простая, приступим:

1) Устанавливаем пакет dhcp-server

# apt-get install isc-dhcp-server

2) После чего, нужно отредактировать конфиг, но сначала нужно уточнить какой сетевой интерфейс смотрит в локальную сеть(если на сервере несколько интерфейсов i-net and lan interfaces)

# ifconfig

Устанавливаем DHCP Server на Debian и Ubuntu

как видим на скриншоте на сервере только один интерфейс eth0 смотрит в локальную сеть. Настроим этот интерфейс для раздачи ip адресов.

# nano /etc/default/isc-dhcp-server

находим

INTERFACES=""

и заменяем на

INTERFACES="eth0"
# nano /etc/dhcp/dhcpd.conf

Находим

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

Заменяем на

option domain-name "MyLAN.com";
option domain-name-servers 192.168.0.1, 192.168.0.2;
*option domain-name-servers указываем список dns серверов,
 192.168.0.1 = IP адрес сервера первичного DNS
 192.168.0.2 = IP адрес сервера вторичного DNS

Раскомментируем строку

#authoritative;

Далее находим:

default-lease-time 600;
 max-lease-time 7200;
 #subnet 10.254.239.0 netmask 255.255.255.224 {
 #  range 10.254.239.10 10.254.239.20;
 #  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
 #}

Заменяем на:

default-lease-time 32400;
 max-lease-time 72000;
 subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.2 192.168.0.254;
 option routers 192.168.0.1;
 }
*default-lease-time 32400; Время на которое выдается IP адрес в секундах.
 *subnet 192.168.0.0 netmask 255.255.255.0 = сеть и маска сети.
 *range 192.168.0.2 192.168.0.254 = пул выдаваемых ip адресов от 2 до 254.
 *option routers 192.168.0.1 = шлюз по умолчанию.

3) Если нужно назначить статическую раздачу IP адресов компьютерам в сети. Добавляем в конец конфига /etc/dhcp/dhcpd.conf

host printServer {
 hardware ethernet 00:0D:87:B3:AE:A6;
 fixed-address 192.168.1.11;
 }
*hardware ethernet 00:0D:87:B3:AE:A6; = MAC адрес сетевой карты printServer-а
 *fixed-address 192.168.1.11; = Выдаваемый IP адрес.

Сохраняем все изменения. И запускаем dhcp сервер.

# /etc/init.d/isc-dhcp-server restart

Список установленных программ и пакетов в Linux

В Red Hat/Fedora Core/CentOS Linux- подобных наберите следующую команду чтобы получить список установленных программ

# rpm -qa | less

В Debian Linux список установленных пакетов можно увидеть так:

# dpkg --get-selections

В Ubuntu Linux список установленных программ смотрим так:

# sudo dpkg --get-selections

В FreeBSD установленные программы можно посмотреть так:

# pkg_info | less
# pkg_info apache

Используйте команду pkg_version чтобы показать общий список версий всех установленных пакетов в FreeBSD:

# pkg_version | less
# pkg_version | grep 'lsof'

В OpenBSD команда use pkg_info так же ведет себя как и в FreeBSD и покажет список установленных пакетов:

# pkg_info | less
# pkg_info apache