lftp – консольный FTP клиент

  • установка lftp
  • подключение к удалённому серверу
  • создание закладок для быстрого подключения
  • lftprc авторизация через публичный ключ
  • пример копирования директории с локальной на удалённую машину

Установка

sudo apt-get update && sudo apt-get install lftp

Подключение к удалённому серверу

$ lftp ftp://ftp.remotehost.com

Дальше команды идут внутри оболочки lftp

Авторизация

lftp ftp.remotehost.com:~>
lftp ftp.remotehost.com:~> login username password

после успешной авторизации вывод внутри lftp будет примерно такой

lftp [email protected]:~>

Пример авторизации через shell-команду прямо из консоли

$ lftp ftp://ourusername:[email protected]

Как подключиться к нужному удалённому серверу изнутри lftp:
здесь символ $ говорит о том что это команда оболочки ОС. lftp :~> – это приветствие ввода интерактивного режима внутри lftp-клиента.

$ lftp                                 

lftp :~> open ftp://ftp.remotehost.com
lftp :~> open ftp://ftp.host.com --user name --password secret

Закладки (Bookmarks)

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

Пути где lftp хранит файлы c закладками(bookmarks)

~/.local/share/lftp/bookmarks
~/.lftp/bookmarks

конфигурационные файлы

~/.lftprc или \~/.lftp/rc   - уровень конкретного пользователя
/etc/lftp.conf               - уровень всей системы

Создание закладки (bookmark add)

Чтобы создать новую закладку внутри интерактивного сеанса(внутри lftp):

lftp :~> bookmark add remotehost ftp://ouruser:[email protected]

Здесь в качестве части url-а указывается все данные для аутентификации – логин и пароль

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

~/.local/share/lftp/bookmarks
~/.lftp/bookmarks)

Текущее подключение в закладки

Находясь в подключении к удалённому серверу можно сохранить это
подключение в закладки

lftp [email protected]:~> bookmark add remotehost
lftp [email protected]:~> exit

здесь первой командой создали новую закладку с именем remotehost
дальше выходим из интерактивного сеанса lftp обратно в оболочку ОС.
Теперь имея новую созданную закладку можно подключится в то же самое место. Причем несколькими способами.

1. Прямо из консоли. Войти в интерактивный режим сразу подключившись к нужному узлу по данным сохранённым в указанной закладке(здесь это имя “remotehost”)

$ lftp remotehost
lftp [email protected]:~> exit

2. Изнутри интерактивного сеанcа lftp.

$ lftp
lftp:~> open remotehost

Другие команды для работы с закладками (изнутри lftp)

  • bookmark edit – редактировать закладки через текстовый редактор
  • bookmark del <имя-закладки> – удалить
  • bookmark list – показать список всех имеющихся закладок

Авторизация по публичному ключу

Подключаться на удалённый сервер открыто отсылая пароль не лучшее решение. Более надёжный и безопасный способ – это настроить аутентификацию по публичному ключу с passphrase(парольной фразой)

По умолчанию lftp для подключения к серверу использует ssh команду

ssh -a -x

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

ssh -a -x -i <public-keyfile>
  • команда в интерактивном режиме(внутри lftp)
set sftp:connect-program "ssh -a -x -i <keyfile>"
  • используя связку команд для команды lftp (из оболочки ОС):
lftp -c 'set sftp:connect-program "ssh -a -x -i <keyfile>"; \
  connect sftp://[email protected]; mirror -eR files; ...'
  • Через конфиг файл ~/.lftprc

Более надёжный и удобный способ – прописать команду подключения добавив следующую строчку в файл ~/.lftprc

set sftp:connect-program "ssh -a -x -i /full/path/to/yourprivatekeyfile"

Теперь для подключения нужно будет указывать парольную фразу назначенную для ключа (youprivatekeyfile). Вот как это будет выглядеть.

lftp sftp://[email protected]
Password:  # type here your passphrase
lftp [email protected]:/>

Здесь идёт подключение от лица пользователя user к хосту host.com при этом для авторизации отсылается публичный ключ указанный в ~/.lftprc

Ускорить и упростить такое подключение можно через закладки.
Создав закладку с коротким именем(если используется часто) и подключаться сразу к нужному серверу в нужном каталоге. Пример

user@debian:~/v$ lftp hs
Password: 
cd ok, cwd=/video/study                                       
lftp [email protected]:/video/study> 

Зеркало (Mirror)

Если нужно быстро скопировать на сервер сразу всё что находится в текущем каталоге можно воспользоваться командой `mirror`

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

Для того чтобы наоборот закачать на удалённый сервер с локальной машины нужно использовать флаг `mirror -R`. Пример

cd ~/shared/new_videos

$ lftp hs
Password:
cd ok, cwd=/video/study
lftp [email protected]:/video/study> !pwd
/home/user/shared/new_video

lftp [email protected]:/video/study> pwd
sftp://[email protected]/video/study

lftp [email protected]:/video/study> ls
sftp://[email protected]/video/study
drwxrwxrwx    1 root     root          754 Jun 10 16:16 .
drwxrwxrwx    1 root     root           66 Jun 19 16:16 ..
drwxrwxrwx    1 user     users        1356 Jun 22  2023 cicd
drwxrwxrwx    1 user     users          20 Apr 10 14:33 databases
drwxrwxrwx    1 user     users         150 Apr 10 14:45 devops
...

lftp [email protected]:/video/study> mkdir new_videos
lftp [email protected]:/video/study> cd new_videos
lftp [email protected]:/video/study/new_videos> mirror -R
  • сначала переходим в нужный каталог который хотим отправить на сервер
  • затем подключаемся к серверу по закалдке через ключ указывая парольную фразу
  • внутри интерактивного сеанса lftp можно выполнять команды для локальной ОС здесь проверяем текущий каталог через !pwd
  • смотрим какие файлы есть на удалённом сервер через ls
  • создаём на удалённом сервере новый каталог переходим в него
  • и через mirror -R копируем всё из текущего локального каталога в текущий удалённый

настройка vsftpd

Иногда приходится использовать ftp для сканирования со старых мфу. В linux его настроить довольно просто.

Устанавливается командой:

sudo apt install vsftpd

Редактируем файл конфигурации

sudo nano /etc/vsftpd.conf

В него нужно добавить параметр write_enable=YES.

Далее перезапускаем сервис vsftpd и можно пользоваться.

sudo systemctl restart vsftpd

Подключение samba каталога в linux

По умолчанию пакет для работы с samba не установлен, ставим командой:

sudo apt install cifs-utils

Предварительно создаем папку, в которую будем подключать samba каталог:

sudo mkdir -p /mnt/work

Далее редактируем файл с точками монтирования:

sudo nano /etc/fstab

Добавляем в него эту строчку:

//sto2/work /mnt/work cifs noperm,_netdev,user,credentials=/home/user/.creds 0 0

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

nano /home/user/.creds
username=john
password=123
domain=domain1.org

И проверить подключение:

sudo mount -av

Монтирование образа как usb-flash в ProxMox

Создание пустого образа:

dd if=/dev/zero of=/rpool/data2/sto.img bs=8M count=1000

Собственно подключение его в конфиге vm, /etc/pve/qemu-server/xxx.conf

args: -device piix3-usb-uhci,addr=0x18 -drive id=usb_disk,file=/rpool/data2/sto.img,if=none,format=raw -device usb-storage,drive=usb_disk,removable=on

Для q35 команда немного другая:

args: -drive id=stick,if=none,format=raw,file=/rpool/data2/sto.img -device usb-storage,drive=stick,bootindex=1

Настройка ARC ZFS

ARC (Adaptive Replacement Cache, кэш адаптивной замены) – собственный эффективный механизм кеширования ZFS использующий достаточно сложные и эффективные алгоритмы. Основной смысл его работы – максимально исключить обращения к диску на чтение в пользу использования кешированных данных. И чем эффективнее работает ARC, чем больше попаданий в кеш, тем тяжелее становятся его элементы и тем труднее их из памяти вытеснить. В результате ZFS практически всегда будет занимать под ARC все доступное ей пространство. С одной стороны, это хорошо, но не будем забывать, что память – дорогой ресурс, а соверменные хранилища могут состоять из быстрых SSD или NVMe накопителей.

В большинстве случаев имеет смысл радикально ограничить ZFS в потреблении памяти, высвободив ее для виртуальных машин.

Классическая формула расчета предполагает:

1 ГБ для хоста + 1 ГБ на 1 ТБ хранилища

При этом не рекомендуется использовать значения кеша менее 3 ГБ.

Современные рекомендации предполагают большие размеры выделяемой памяти:

1 ГБ + 4-5 ГБ на 1 ТБ хранилища

А если вы используете дедупликацию, то:

1 ГБ + 5-6 ГБ на 1 ТБ хранилища

Исходя из этого и рекомендаций по минимальному размеру можно считать достаточно оптимальным значением для небольших хранилищ размер кеша 4 – 8 ГБ. Размер кеша ZFS задается в байтах и вычислить его можно по формуле:

N*1048576*1024

Где N – нужное значение в ГБ.

Чтобы добавить собственные настройки лимитов ARC создайте, если вы не сделали этого ранее, файл /etc/modprobe.d/zfs.conf и откройте его для редактирования. Все это можно сделать одной командой:

nano /etc/modprobe.d/zfs.conf

Если вы предпочитаете редактор mc, замените nano на mcedit. Если файл не существует, то он будет создан и открыт для редактирования, если существует – просто открыт для редактирования.

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

options zfs zfs_arc_min=4294967296 
options zfs zfs_arc_max=8589934592

Затем обновим образ начальной файловой системы:

update-initramfs -u

Если ваша система использует UEFI, то дополнительно выполните:

pve-efiboot-tool refresh

После чего выполните перезагрузку.

Результат обычно виден сразу и, что называется, невооруженным глазом.

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

автосмена обоев gnome-shell

Установить менеджер дополнений гнома:

sudo apt install gnome-shell-extension-manager

И в нем установить дополнение Wallpaper Switcher

Дальше остается только выбрать директорию с изображениями.

yandex-browser no_pubkey

Если при обновлении яндекс браузера вылезла ошибка:

W: Произошла ошибка при проверке подписи. Репозиторий не обновлён, и будут использованы предыдущие индексные файлы. Ошибка GPG: https://repo.yandex.ru/yandex-browser/deb stable InRelease: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 60B9CD3A083A7A9A
W: Не удалось получить https://repo.yandex.ru/yandex-browser/deb/dists/stable/InRelease Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 60B9CD3A083A7A9A
W: Некоторые индексные файлы скачать не удалось. Они были проигнорированы, или вместо них были использованы старые версии.

то делаем следующее

wget https://repo.yandex.ru/yandex-browser/YANDEX-BROWSER-KEY.GPG -O- | sudo tee /etc/apt/trusted.gpg.d/YANDEX-BROWSER-KEY.asc

и пытаемся обновить еще раз.

источник

lvm raid1

Добавляем диски в LVM

pvcreate /dev/sdX1 /dev/sdY1

Создаём группу vgdata из двух дисков

vgcreate raid1vg0 /dev/sdX1 /dev/sdY1

Создаём логический диск с RAID 1 под именем lvmirror на 3ГБ:

lvcreate --mirrors 1 --type raid1 -l 100%FREE --nosync -n raid1lv0 raid1vg0

можно указать флаг --nosync, чтобы пропустить синхронизацию пустого зеркала.

Смотрим что получилось

lvs -a -o +devices

Колонка Cpy%Sync показывает, процент синхронизации, а Devices, устройства, на которых находятся данные логического диска.

FS

Осталось создать файловую систему:

mkfs.ext4 /dev/vgdata/lvmirror

И можно примонтировать и пользоваться

mount /dev/vgdata/lvmirror /mnt/
Читать далее «lvm raid1»