облачные хранилища
Модераторы: Olej, bellic, vikos
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
облачные хранилища
Была уже такая тема в форуме облачные сервисы ... но она старая, последние сообщения там - 2013г.
Поэтому проще начать с начала...
Новый виток к облачным хранилищам возник при изменении хостинга этого форума + к вопросу хранения файлов бэкапов (бэкапы в Google Диск (или другое облако)).
Проблема в чём:
- бэкапы форума имеют на сегодня 1.1-1.2Gb ... и будут в дальнейшем только увеличиваться;
- делаться они должны чуть ли не ежедневно (истерия и паника с предыдущим хостером, Айхор - научили );
- нужно бы хранить несколько (сколько-то-там ... сколько?) последовательных бэкапов (кое-кто кое-где называют цифру 30 - но это уж слишком!);
- хранить бэкапы на том же сервере хостера не хотелось бы: случись что-то с сервером, или поцапавшись с хостером - и бэкапы пропадут вместе с форумом...
- хранить бэкапы на своём локальном компьютере (как уже отлажено сейчас) тоже не хотелось бы (из-за объёмов);
- хороший, казалось бы, вариант: хранить бэкапы на свободных (бесплатных!) публичных облачных хранилищах в Интернет.
На сейчас бэкапы форума, сбрасываемые на локальный компьютер, я upload на Яндекс.Диск + Google.Drive (дублируются) через WEB интерфейс. Загрузка на один облачный ресурс идёт 10-15 минут
И с этим всё нормально... Но это делается каждый раз вручную!
Хотелось бы автоматизировать это скриптом, который выполнялся бы регулярно, через cron или подобным образом. А для этого нужны консольные клиенты, которые можно затолкать в скрипт.
Но как только дошло до дела ... начали вылезать разнообразные нюансы.
Вот про эти нюансы и эта тема...
Поэтому проще начать с начала...
Новый виток к облачным хранилищам возник при изменении хостинга этого форума + к вопросу хранения файлов бэкапов (бэкапы в Google Диск (или другое облако)).
Проблема в чём:
- бэкапы форума имеют на сегодня 1.1-1.2Gb ... и будут в дальнейшем только увеличиваться;
- делаться они должны чуть ли не ежедневно (истерия и паника с предыдущим хостером, Айхор - научили );
- нужно бы хранить несколько (сколько-то-там ... сколько?) последовательных бэкапов (кое-кто кое-где называют цифру 30 - но это уж слишком!);
- хранить бэкапы на том же сервере хостера не хотелось бы: случись что-то с сервером, или поцапавшись с хостером - и бэкапы пропадут вместе с форумом...
- хранить бэкапы на своём локальном компьютере (как уже отлажено сейчас) тоже не хотелось бы (из-за объёмов);
- хороший, казалось бы, вариант: хранить бэкапы на свободных (бесплатных!) публичных облачных хранилищах в Интернет.
На сейчас бэкапы форума, сбрасываемые на локальный компьютер, я upload на Яндекс.Диск + Google.Drive (дублируются) через WEB интерфейс. Загрузка на один облачный ресурс идёт 10-15 минут
И с этим всё нормально... Но это делается каждый раз вручную!
Хотелось бы автоматизировать это скриптом, который выполнялся бы регулярно, через cron или подобным образом. А для этого нужны консольные клиенты, которые можно затолкать в скрипт.
Но как только дошло до дела ... начали вылезать разнообразные нюансы.
Вот про эти нюансы и эта тема...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: облачные хранилища
Большинство облачных сервисов допускают доступ к данным через протокол WebDAV.
Про монтирование ресурсов по WebDAV, через davfs2 - см. бэкапы в Google Диск (или другое облако).
И 1-й итог этого звучит так:
- Яндекс.Диск предоставляет свободно, бесплатно 13Gb места - этого вполне достаточно...
- через WebDAV устанавливается доступ...
- Но!!! при загрузке больших файлов (~1Gb) передача виснет, а WedDAV устройство размонтировать уже невозможно... (см. бэкапы в Google Диск (или другое облако))
- и это баг реализации именно Яндекс.Диск, о котором много пишут в Интернет...
И это сподвигло на поиск и проверку других облачных хранилищ...
А WEB-интерфейс Яндекс позволяет загружать файлы любого размера ... сколько влезет:
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: облачные хранилища
MEGA - Безопасное облачное хранилище и связь.
во-первых, 50Gb - это при выполнении ряда ограничивающих условий и обязательств...Создано для конфиденциальности.
Создайте MEGA-аккаунт и получите 50 ГБ БЕСПЛАТНО*
во-вторых, обращаем внимание на "конфиденциальность" - весь обмен шифруется и, как показывает опыт использования, скорость обмена сильно сокращается - <1Mb/s, на порядок меньше скорости канала.
Отдельная страница: Инструмент командной строки для работы с вашей учётной записью и файлами MEGA.
Т.е. консольный доступ не стандартными протоколами и клиентами, а через специальный проприетарный (хотя и опенсорсный) клиент.
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ sudo dpkg -i megasync-Debian_10.0_amd64.deb
[sudo] пароль для olej:
Выбор ранее не выбранного пакета megasync.
(Чтение базы данных … на данный момент установлено 424750 файлов и каталогов.)
Подготовка к распаковке megasync-Debian_10.0_amd64.deb …
Распаковывается megasync (4.2.5+1.2) …
dpkg: зависимости пакетов не позволяют настроить пакет megasync:
megasync зависит от libcrypto++6, однако:
Пакет libcrypto++6 не установлен.
dpkg: ошибка при обработке пакета megasync (--install):
проблемы зависимостей — оставляем не настроенным
Обрабатываются триггеры для mime-support (3.62) …
Обрабатываются триггеры для desktop-file-utils (0.23-4) …
Обрабатываются триггеры для hicolor-icon-theme (0.17-2) …
При обработке следующих пакетов произошли ошибки:
megasync
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ sudo apt install libcrypto++6
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
libcrypto++6
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 64 пакетов не обновлено.
Установлено или удалено не до конца 1 пакетов.
Необходимо скачать 832 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 3 727 kB.
Пол:1 http://deb.debian.org/debian buster/main amd64 libcrypto++6 amd64 5.6.4-8 [832 kB]
Получено 832 kB за 1с (1 188 kB/s)
Выбор ранее не выбранного пакета libcrypto++6.
(Чтение базы данных … на данный момент установлено 424774 файла и каталога.)
Подготовка к распаковке …/libcrypto++6_5.6.4-8_amd64.deb …
Распаковывается libcrypto++6 (5.6.4-8) …
Настраивается пакет libcrypto++6 (5.6.4-8) …
Настраивается пакет megasync (4.2.5+1.2) …
fs.inotify.max_user_watches = 524288
Обрабатываются триггеры для libc-bin (2.28-10) …
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ sudo dpkg -i megacmd-Debian_10.0_amd64.deb
[sudo] пароль для olej:
Выбор ранее не выбранного пакета megacmd.
(Чтение базы данных … на данный момент установлено 424780 файлов и каталогов.)
Подготовка к распаковке megacmd-Debian_10.0_amd64.deb …
Распаковывается megacmd (1.1.0+12.1) …
Настраивается пакет megacmd (1.1.0+12.1) …
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: облачные хранилища
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ mega-cmd
.=============================================================================================================================================================================.
| __ __ _____ ____ _ _ |
| | \/ | ___|/ ___| / \ ___ _ __ ___ __| | |
| | |\/| | \ / | _ / _ \ / __| '_ ` _ \ / _` | |
| | | | | /__\ |_| |/ ___ \ (__| | | | | | (_| | |
| |_| |_|____|\____/_/ \_\___|_| |_| |_|\__,_| |
| |
| Welcome to MEGAcmd! A Command Line Interactive and Scriptable |
| Application to interact with your MEGA account. |
| Please write to support@mega.nz if you find any issue or |
| have any suggestion concerning its functionalities. |
| Enter "help --non-interactive" to learn how to use MEGAcmd with scripts. |
| Enter "help" for basic info and a list of available commands. |
`=============================================================================================================================================================================´
MEGA CMD> help
Here is the list of available commands and their usage
Use "help -f" to get a brief description of the commands
You can get further help on a specific command with "command" --help
Alternatively, you can use "help" -ff to get a complete description of all commands
Use "help --non-interactive" to learn how to use MEGAcmd with scripts
Use "help --upgrade" to learn about the limitations and obtaining PRO accounts
Commands:
attr graphics psa
backup help put
cancel https pwd
cat import quit
cd invite reload
clear ipc rm
completion killsession session
confirm lcd share
confirmcancel log showpcr
cp login signup
debug logout speedlimit
deleteversions lpwd sync
df ls thumbnail
du masterkey transfers
errorcode mediainfo tree
exclude mkdir userattr
exit mount users
export mv version
find passwd webdav
ftp permissions whoami
get preview
Verbosity: You can increase the amount of information given by any command by passing "-v" ("-vv", "-vvv", ...)
MEGA CMD>
Но в описаниях утверждается, что допускается и скриптовый режим использования: How do I setup a script to run many commands using MEGAcmd?
WEB-интерфейс MEGA:
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: облачные хранилища
Dropbox - Dropbox Basic
https://www.dropbox.com/installБесплатный
Используйте 2 ГБ места бесплатно, если вам нужно хранить всего несколько файлов для краткосрочного проекта или делиться ими.
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ ls -l dropbox_2019.02.14_amd64.deb
-rw-r--r-- 1 olej olej 69168 янв 20 14:38 dropbox_2019.02.14_amd64.deb
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ sudo dpkg -i dropbox_2019.02.14_amd64.deb
[sudo] пароль для olej:
Выбор ранее не выбранного пакета dropbox.
(Чтение базы данных … на данный момент установлено 424846 файлов и каталогов.)
Подготовка к распаковке dropbox_2019.02.14_amd64.deb …
Распаковывается dropbox (2019.02.14) …
Настраивается пакет dropbox (2019.02.14) …
Please restart all running instances of Nautilus, or you will experience problems. i.e. nautilus --quit
Dropbox installation successfully completed! You can start Dropbox from your applications menu.
Обрабатываются триггеры для man-db (2.8.5-2) …
Обрабатываются триггеры для mime-support (3.62) …
Обрабатываются триггеры для desktop-file-utils (0.23-4) …
Обрабатываются триггеры для hicolor-icon-theme (0.17-2) …
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: облачные хранилища
2Gb может быть маловато ... но кое-что.
WEB-интерфейс Dropbox: https://www.dropbox.com/home
Загрузка здесь (отсутствует шифрование) заметно быстрее чем MEGA
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: облачные хранилища
tuxdrive
Tuxdrive – A Commandline Google Drive Client For Linux
PUBLISHED SEPTEMBER 21, 2017 · UPDATED SEPTEMBER 18, 2018
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ sudo pip3 install google-api-python-client
[sudo] пароль для olej:
Collecting google-api-python-client
Downloading https://files.pythonhosted.org/packages/5e/19/9fd511734c0dee8fa3d49f4109c75e7f95d3c31ed76c0e4a93fbba147807/google-api-python-client-1.7.11.tar.gz (142kB)
|████████████████████████████████| 143kB 872kB/s
Collecting httplib2<1dev,>=0.9.2
Downloading https://files.pythonhosted.org/packages/e3/cc/7e82cfdc417f28ae92a67493eb65a2ce8b7ced89c09d21e625556caa0f26/httplib2-0.16.0-py3-none-any.whl (95kB)
|████████████████████████████████| 102kB 1.7MB/s
Collecting google-auth>=1.4.1
Downloading https://files.pythonhosted.org/packages/8d/5f/a1a02695b96d0e09c38abf7d1576b137979cea3d060d60891622cf61276d/google_auth-1.10.1-py2.py3-none-any.whl (76kB)
|████████████████████████████████| 81kB 1.9MB/s
Collecting google-auth-httplib2>=0.0.3
Downloading https://files.pythonhosted.org/packages/33/49/c814d6d438b823441552198f096fcd0377fd6c88714dbed34f1d3c8c4389/google_auth_httplib2-0.0.3-py2.py3-none-any.whl
Requirement already satisfied: six<2dev,>=1.6.1 in /usr/local/lib/python3.7/dist-packages (from google-api-python-client) (1.13.0)
Collecting uritemplate<4dev,>=3.0.0
Downloading https://files.pythonhosted.org/packages/bf/0c/60d82c077998feb631608dca3cc1fe19ac074e772bf0c24cf409b977b815/uritemplate-3.0.1-py2.py3-none-any.whl
Collecting rsa<4.1,>=3.1.4
Downloading https://files.pythonhosted.org/packages/02/e5/38518af393f7c214357079ce67a317307936896e961e35450b70fad2a9cf/rsa-4.0-py2.py3-none-any.whl
Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/lib/python3/dist-packages (from google-auth>=1.4.1->google-api-python-client) (0.2.1)
Requirement already satisfied: setuptools>=40.3.0 in /usr/local/lib/python3.7/dist-packages (from google-auth>=1.4.1->google-api-python-client) (41.2.0)
Collecting cachetools<5.0,>=2.0.0
Downloading https://files.pythonhosted.org/packages/08/6a/abf83cb951617793fd49c98cb9456860f5df66ff89883c8660aa0672d425/cachetools-4.0.0-py3-none-any.whl
Requirement already satisfied: pyasn1>=0.1.3 in /usr/lib/python3/dist-packages (from rsa<4.1,>=3.1.4->google-auth>=1.4.1->google-api-python-client) (0.4.2)
Building wheels for collected packages: google-api-python-client
Building wheel for google-api-python-client (setup.py) ... done
Created wheel for google-api-python-client: filename=google_api_python_client-1.7.11-cp37-none-any.whl size=56531 sha256=237985fac547eaaa03436cfc1656d11ca691916a16acefe977354b066aec448b
Stored in directory: /root/.cache/pip/wheels/b8/f6/f5/b7bef1a5bc0e07ca4aa54c596b0b574c5afc07a9fddccf08f8
Successfully built google-api-python-client
Installing collected packages: httplib2, rsa, cachetools, google-auth, google-auth-httplib2, uritemplate, google-api-python-client
Successfully installed cachetools-4.0.0 google-api-python-client-1.7.11 google-auth-1.10.1 google-auth-httplib2-0.0.3 httplib2-0.16.0 rsa-4.0 uritemplate-3.0.1
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ wget https://github.com/prahladyeri/tuxdrive/releases/download/v1.0.10/tuxdrive.deb
--2020-01-20 15:54:01-- https://github.com/prahladyeri/tuxdrive/releases/download/v1.0.10/tuxdrive.deb
Распознаётся github.com (github.com)… 140.82.118.3
Подключение к github.com (github.com)|140.82.118.3|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 302 Found
Адрес: https://github-production-release-asset-2e65be.s3.amazonaws.com/104095013/fc8bf33e-9eef-11e7-9cae-d7a27390ad01?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200120%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200120T135402Z&X-Amz-Expires=300&X-Amz-Signature=67a42648f85d33f55e2f622d5a39b9c6192b6ac53bd9254cc8633aa4d2a2a123&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dtuxdrive.deb&response-content-type=application%2Foctet-stream [переход]
--2020-01-20 15:54:02-- https://github-production-release-asset-2e65be.s3.amazonaws.com/104095013/fc8bf33e-9eef-11e7-9cae-d7a27390ad01?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200120%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200120T135402Z&X-Amz-Expires=300&X-Amz-Signature=67a42648f85d33f55e2f622d5a39b9c6192b6ac53bd9254cc8633aa4d2a2a123&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dtuxdrive.deb&response-content-type=application%2Foctet-stream
Распознаётся github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)… 52.216.80.112
Подключение к github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.80.112|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 5118 (5,0K) [application/octet-stream]
Сохранение в: «tuxdrive.deb»
tuxdrive.deb 100%[==========================================================================================>] 5,00K --.-KB/s за 0,003s
2020-01-20 15:54:03 (1,40 MB/s) - «tuxdrive.deb» сохранён [5118/5118]
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ ls -l tuxdrive.deb
-rw-r--r-- 1 olej olej 5118 сен 21 2017 tuxdrive.deb
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ sudo dpkg -i tuxdrive.deb
Выбор ранее не выбранного пакета tuxdrive.
(Чтение базы данных … на данный момент установлен 424891 файл и каталог.)
Подготовка к распаковке tuxdrive.deb …
Распаковывается tuxdrive (1.0) …
Настраивается пакет tuxdrive (1.0) …
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: облачные хранилища
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ which tuxdrive
/usr/bin/tuxdrive
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ tuxdrive --help
Traceback (most recent call last):
File "/usr/bin/tuxdrive", line 8, in <module>
from oauth2client import client
ModuleNotFoundError: No module named 'oauth2client'
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ sudo pip3 install oauth2client
Collecting oauth2client
Downloading https://files.pythonhosted.org/packages/95/a9/4f25a14d23f0786b64875b91784607c2277eff25d48f915e39ff0cff505a/oauth2client-4.1.3-py2.py3-none-any.whl (98kB)
|████████████████████████████████| 102kB 931kB/s
Requirement already satisfied: six>=1.6.1 in /usr/local/lib/python3.7/dist-packages (from oauth2client) (1.13.0)
Requirement already satisfied: httplib2>=0.9.1 in /usr/local/lib/python3.7/dist-packages (from oauth2client) (0.16.0)
Requirement already satisfied: rsa>=3.1.4 in /usr/local/lib/python3.7/dist-packages (from oauth2client) (4.0)
Requirement already satisfied: pyasn1-modules>=0.0.5 in /usr/lib/python3/dist-packages (from oauth2client) (0.2.1)
Requirement already satisfied: pyasn1>=0.1.7 in /usr/lib/python3/dist-packages (from oauth2client) (0.4.2)
Installing collected packages: oauth2client
Successfully installed oauth2client-4.1.3
Код: Выделить всё
olej@ACER:~/2020_WORK/rus.linux.net.hist/clouds$ tuxdrive
Tux Drive version 1.0.10
Copyright (c) 2017 Prahlad Yeri. All rights reserved.
...
tux_drive> help
Commands:
help (or ?): Shows this help facility.
dir (or ls): Lists all files and folders on drive.
!dir (or !ls): Lists all files and folders in current directory.
pull <item>: Pulls the named file/folder from drive to current working directory.
push <item>: Pushes the named file/folder from current working directory to drive.
rm <item>: Delete the named file/folder on remote path.
pwd: Print working directory (remote/drive)
cd: Change working directory (remote/drive)
lpwd: Print working directory (local)
lcd: Change working directory (local)
rdcache: Show remote directory mapping of id and folder paths.
rfcache: Show remote files mapping of id and folder paths.
mkdir: Create a directory on remote path.
exit: Exits this program.
...
Код: Выделить всё
tux_drive> cd rus.linux.net
Credentials fetched successfully.
Remote directory changed to /rus.linux.net (1oM6NnYG53uSmXUDFXATcwxhHxsOY7l0A)
tux_drive> dir
Credentials fetched successfully.
DIRECTORY localhost
DIRECTORY ФОРУМ.first
DIRECTORY ..
FILE backup-19.01.2020_18-50.tgz
FILE backup-19.01.2020_18-50.sql
FILE backup-18.01.2020_10-03.tgz
FILE backup-18.01.2020_10-03.sql
FILE backup-15.01.2020_13-08.tgz
FILE backup-15.01.2020_13-08.sql
FILE backup-13.01.2020_16-23.tgz
FILE backup-13.01.2020_16-23.sql
FILE backup-30.12.2019_17-15.tgz
FILE backup-30.12.2019_17-15.sql
12 items found.
Remote Working Directory is /rus.linux.net(1oM6NnYG53uSmXUDFXATcwxhHxsOY7l0A)
tux_drive> !ls
FILE dropbox_2019.02.14_amd64.deb
FILE google.hist
FILE dropbox.hist
DIRECTORY MEGAcmd
FILE megacmd-Debian_10.0_amd64.deb
FILE tuxdrive.deb
FILE yandex.connect
FILE yandex.hist
FILE rc2.png
FILE megasync-Debian_10.0_amd64.deb
FILE mega.hist
FILE box.net.hist
FILE MEGA-RECOVERYKEY.txt
FILE rc1.png
14 items found.
Local Working Directory is /home/olej/2020_WORK/rus.linux.net.hist/clouds
Код: Выделить всё
tux_drive> pull backup-19.01.2020_18-50.sql
File found: /rus.linux.net/backup-19.01.2020_18-50.sql
Credentials fetched successfully.
Downloading: 1D9BxJYiEcovPz61gaDAxfd4ag59k6TDO(backup-19.01.2020_18-50.sql)
Downloaded successfully to /home/olej/2020_WORK/rus.linux.net.hist/clouds/backup-19.01.2020_18-50.sql
tux_drive> push google.hist
Uploading google.hist
Credentials fetched successfully.
Upload successful
Credentials fetched successfully.
tux_drive> rm google.hist
Credentials fetched successfully.
Item 1J4usQ0UGk-PQ-vr1vSlQoTh8CMJt5KiI deleted.
Опять же, это такой мощный интерактивный "shell"... который не годится для консольных автономных скриптов.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость