SRV_ADMIN Telegram 1795
Продолжаю ваc знакомить с утилитами командной стоки Linux, которыми пользуюсь сам. На днях вспомнил про SPLIT. С её помощью можно делить файлы на части. Чаще всего это нужно для больших архивов, которые требуется разбиться на части перед передачей по интернету. Так проще передать большой файл.

Я не помню, чтобы мне приходилось когда-нибудь ставить split отдельно. Обычно она есть в стандартном системном наборе во всех дистрибутивах, с которыми приходится работать.

Конкретно я split использую, когда нужно отправить в S3 хранилище какой-то большой архив. Во многих инструкциях по S3 указывается, что большие файлы отправлять не рекомендуется. Под большими подразумевается что-то больше 2-3 Гигабайт. Так что такие файлы приходится разбивать.

В общем случае разбить файл с помощью split можно следующим образом:
# split -b 100M file
На выходе получим некоторый набор файлов в зависимости от размера исходного. Имена у файлов будут вида xaa, xab, xaс и т.д., что явно неудобно. Поэтому на практике лучше сразу указать маску, по которой будут создаваться новые файлы:
# split -b 2M file file_ -a 2 -d
Мы указали длину префикса 2 и использование чисел. На выходе будут файлы file_00, file_01, file_02 и т.д., что мне видится удобнее дефолтных масок.

Собрать файлы обратно можно следующим образом:
# cat file_* > file

Если вы просто хотите разделить файл на 5 частей вне зависимости от того, какого они будут размера, то делается это следующим образом:
# split -n 5 file file_ -a 2 -d

Вот пример использования split на бэкапе большого сайта для дальнейшей передачи его в S3. Пример условный, так как вынул его из большого скрипта и все переменные указал явно. То есть это не мой окончательный рабочий вариант, а адаптированный пример:

# Делаем архив с относительным путём внутри
/usr/bin/tar --exclude='cache/*' \
-czvf /mnt/backup/site.ru_`date +"%Y-%m-%d_%H-%M"`.tar.gz \
-C /web/sites/site.ru www
# Разбиваем архив на части
/usr/bin/split -b 2048m \
/mnt/backup/site.ru_`date +"%Y-%m-%d_%H-%M"`.tar.gz \
"/mnt/backup/site.ru_`date +"%Y-%m-%d_%H-%M"`.tar.gz-part-"
# Удаляем исходный файл
/usr/bin/rm -rf /mnt/backup/site.ru_`date +"%Y-%m-%d_%H-%M"`.tar.gz
# Заливаем в S3
/usr/bin/rclone copy /mnt/backup s3storage:week
# Чистим локальный бэкап от старых архивов
/usr/bin/find /mnt/backup -type f -mtime +7 -exec rm {} \;

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

#terminal #bash



tgoop.com/srv_admin/1795
Create:
Last Update:

Продолжаю ваc знакомить с утилитами командной стоки Linux, которыми пользуюсь сам. На днях вспомнил про SPLIT. С её помощью можно делить файлы на части. Чаще всего это нужно для больших архивов, которые требуется разбиться на части перед передачей по интернету. Так проще передать большой файл.

Я не помню, чтобы мне приходилось когда-нибудь ставить split отдельно. Обычно она есть в стандартном системном наборе во всех дистрибутивах, с которыми приходится работать.

Конкретно я split использую, когда нужно отправить в S3 хранилище какой-то большой архив. Во многих инструкциях по S3 указывается, что большие файлы отправлять не рекомендуется. Под большими подразумевается что-то больше 2-3 Гигабайт. Так что такие файлы приходится разбивать.

В общем случае разбить файл с помощью split можно следующим образом:
# split -b 100M file
На выходе получим некоторый набор файлов в зависимости от размера исходного. Имена у файлов будут вида xaa, xab, xaс и т.д., что явно неудобно. Поэтому на практике лучше сразу указать маску, по которой будут создаваться новые файлы:
# split -b 2M file file_ -a 2 -d
Мы указали длину префикса 2 и использование чисел. На выходе будут файлы file_00, file_01, file_02 и т.д., что мне видится удобнее дефолтных масок.

Собрать файлы обратно можно следующим образом:
# cat file_* > file

Если вы просто хотите разделить файл на 5 частей вне зависимости от того, какого они будут размера, то делается это следующим образом:
# split -n 5 file file_ -a 2 -d

Вот пример использования split на бэкапе большого сайта для дальнейшей передачи его в S3. Пример условный, так как вынул его из большого скрипта и все переменные указал явно. То есть это не мой окончательный рабочий вариант, а адаптированный пример:

# Делаем архив с относительным путём внутри
/usr/bin/tar --exclude='cache/*' \
-czvf /mnt/backup/site.ru_`date +"%Y-%m-%d_%H-%M"`.tar.gz \
-C /web/sites/site.ru www
# Разбиваем архив на части
/usr/bin/split -b 2048m \
/mnt/backup/site.ru_`date +"%Y-%m-%d_%H-%M"`.tar.gz \
"/mnt/backup/site.ru_`date +"%Y-%m-%d_%H-%M"`.tar.gz-part-"
# Удаляем исходный файл
/usr/bin/rm -rf /mnt/backup/site.ru_`date +"%Y-%m-%d_%H-%M"`.tar.gz
# Заливаем в S3
/usr/bin/rclone copy /mnt/backup s3storage:week
# Чистим локальный бэкап от старых архивов
/usr/bin/find /mnt/backup -type f -mtime +7 -exec rm {} \;

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

#terminal #bash

BY ServerAdmin.ru


Share with your friend now:
tgoop.com/srv_admin/1795

View MORE
Open in Telegram


Telegram News

Date: |

Ng was convicted in April for conspiracy to incite a riot, public nuisance, arson, criminal damage, manufacturing of explosives, administering poison and wounding with intent to do grievous bodily harm between October 2019 and June 2020. It’s easy to create a Telegram channel via desktop app or mobile app (for Android and iOS): How to Create a Private or Public Channel on Telegram? Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week. With Bitcoin down 30% in the past week, some crypto traders have taken to Telegram to “voice” their feelings.
from us


Telegram ServerAdmin.ru
FROM American