Я использую
tar zcf - stuff | ssh user@server 'cat > data.tar.gz'
Есть ли способ разбить файл при передаче?
Примерно так:
tar zcf - stuff | split -b 5G | ssh user@server 'cat > data-${part}.tar.gz'
Да, команда называется split
.
tar czf - stuff | split -b 5G -d -f 'ssh server "cat >$FILE"'
Эта опция является новой в Ubuntu 12.04. В предыдущих версиях split
можно разбивать только на файлы, но не на команды. Файлы могут быть названы конвейерами, но организация команд для чтения из конвейеров громоздка.
Без split -f
более простой подход - забыть об использовании команды. Вместо этого смонтируйте удаленную файловую систему с помощью sshfs , чтобы вы могли писать в нее, как если бы это был локальный файл.
mkdir ~/net/server
sshfs user@server ~/net/server
tar czf - stuff | (cd ~/net/server && split -b 5G -d)
fusermount -u ~/net/server
Возможно, вас заинтересует правильное программное обеспечение для резервного копирования, такое как duplicity .