Usando o rclone
Tirando o máximo proveito do IBM Cloud® Object Storage ao ter acesso a ferramentas e soluções como rclone
e a interface da linha de comandos (cli).
Instalar rclone
A ferramenta rclone
é útil para manter os diretórios sincronizados e para migrar dados entre as plataformas de armazenamento. É um programa Go e vem como um único arquivo binário.
Instalação de iniciação rápida
- Faça download do binário relevante.
- Extraia o binário
rclone
ourclone.exe
do archive. - Execute
rclone config
para configurar.
Instalação usando um script
Instale o rclone
em sistemas Linux/macOS/BSD:
curl https://rclone.org/install.sh | sudo bash
As versões beta estão disponíveis também:
curl https://rclone.org/install.sh | sudo bash -s beta
O script de instalação verifica a versão do rclone
instalada primeiro e ignora o download se a versão atual já está atualizada.
Instalação do Linux a partir do binário pré-compilado
-
Buscar e descompactar o binário:
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip unzip rclone-current-linux-amd64.zip cd rclone-*-linux-amd64
-
Copie o arquivo binário para um local sensível:
sudo cp rclone /usr/bin/ sudo chown root:root /usr/bin/rclone sudo chmod 755 /usr/bin/rclone
-
Instale a documentação:
sudo mkdir -p /usr/local/share/man/man1 sudo cp rclone.1 /usr/local/share/man/man1/ sudo mandb
-
Execute
rclone config
para configurar:rclone config
Instalação do macOS a partir do binário pré-compilado
-
Faça download do pacote
rclone
:cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
-
Extraia o arquivo transferido por download e
cd
para a pasta extraída:unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
-
Mova
rclone
para seu$PATH
e insira sua senha quando solicitado:sudo mkdir -p /usr/local/bin sudo mv rclone /usr/local/bin/
O comando
mkdir
é seguro para ser executado, mesmo se o diretório existe. -
Remova os arquivos restantes.
cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
-
Execute
rclone config
para configurar:rclone config
Configurar o acesso ao IBM COS
-
Execute
rclone config
e selecionen
para um novo remoto.No remotes found - make a new one n) New remote s) Set configuration password q) Quit config n/s/q> n
-
Insira o nome para a configuração:
name> <YOUR NAME>
-
Selecione o armazenamento “s3”.
Choose a number from below, or type in your own value 1 / Alias for a existing remote \ "alias" 2 / Amazon Drive \ "amazon cloud drive" 3 / Amazon S3 Complaint Storage Providers (Dreamhost, Ceph, Minio, IBM COS) \ "s3" 4 / Backblaze B2 \ "b2" [snip] 23 / http Connection \ "http" Storage> 3
-
Selecione IBM COS como o Provedor de armazenamento S3.
Choose the S3 provider. Enter a string value. Press Enter for the default ("") Choose a number from below, or type in your own value 1 / Amazon Web Services (AWS) S3 \ "AWS" 2 / Ceph Object Storage \ "Ceph" 3 / Digital Ocean Spaces \ "Digital Ocean" 4 / Dreamhost DreamObjects \ "Dreamhost" 5 / IBM COS S3 \ "IBMCOS" [snip] Provider>5
-
Insira False para inserir suas credenciais.
Get AWS credentials from the runtime (environment variables or EC2/ECS meta data if no env vars). Only applies if access_key_id and secret_access_key is blank. Enter a boolean value (true or false). Please Enter for the default ("false"). Choose a number from below, or type in your own value 1 / Enter AWS credentials in the next step \ "false" 2 / Get AWS credentials from the environment (env vars or IAM) \ "true" env_auth>false
-
Insira a Chave de acesso e o Segredo.
AWS Access Key ID - leave blank for anonymous access or runtime credentials. access_key_id> <> AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials. secret_access_key> <>
-
Especifique o terminal para o IBM COS. Para o IBM COS público, escolha dentre as opções fornecidas. Para obter mais informações sobre terminais, consulte Terminais e locais de armazenamento.
Endpoint for IBM COS S3 API. Choose a number from below, or type in your own value 1 / US Cross Region Endpoint \ "s3.us.cloud-object-storage.appdomain.cloud" 2 / US Cross Region Dallas Endpoint \ "s3-api.dal.us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 3 / US Cross Region Washington DC Endpoint \ "s3-api.wdc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 4 / US Cross Region San Jose Endpoint \ "s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 5 / US Cross Region Private Endpoint \ "s3-api.us-geo.objectstorage.service.networklayer.com" [snip] 34 / Toronto Single Site Private Endpoint \ "s3.tor01.objectstorage.service.networklayer.com" endpoint>1
-
Especifique uma Restrição de local do IBM COS. A restrição de local deve corresponder ao terminal. Para obter mais informações sobre terminais, consulte Terminais e locais de armazenamento.
1 / US Cross Region Standard \ "us-standard" 2 / US Cross Region Vault \ "us-vault" 3 / US Cross Region Cold \ "us-cold" 4 / US Cross Region Flex \ "us-flex" 5 / US East Region Standard \ "us-east-standard" [snip] 32 / Toronto Flex \ "tor01-flex" location_constraint>1
-
Especifique uma ACL. Somente
public-read
eprivate
são suportados.Canned ACL used when creating buckets or storing objects in S3. Choose a number from below, or type in your own value 1 "private" 2 "public-read" acl>1
-
Revise a configuração exibida e aceite para salvar o “remoto”, em seguida, encerre. O arquivo de configuração deve ser semelhante a este
[YOUR NAME] type = s3 Provider = IBMCOS access_key_id = xxx secret_access_key = yyy endpoint = s3.us.cloud-object-storage.appdomain.cloud location_constraint = us-standard acl = private
Referência de comandos
Criar um depósito
rclone mkdir RemoteName:newbucket
Listar depósitos disponíveis
rclone lsd RemoteName:
Listar o conteúdo de um depósito
rclone ls RemoteName:newbucket
Copiar um arquivo de local para remoto
rclone copy /Users/file.txt RemoteName:newbucket
Copiar um arquivo de remoto para local
rclone copy RemoteName:newbucket/file.txt /Users/Documents/
Excluir um arquivo no remoto
rclone delete RemoteName:newbucket/file.txt
Comandos de lista
Há vários comandos de lista relacionados:
ls
para listar o tamanho e o caminho somente de objetoslsl
para listar o horário de modificação, o tamanho e o caminho somente de objetoslsd
para listar somente diretórioslsf
para listar objetos e diretórios em formato fácil de analisarlsjson
para listar objetos e diretórios em formato JSON
rclone sync
A operação sync
torna a origem e o destino idênticos e modifica somente o destino. A sincronização não transfere os arquivos inalterados, testando por tamanho e horário de modificação ou MD5SUM. O destino é atualizado para corresponder
à origem, incluindo a exclusão de arquivos, se necessário.
Como essa operação pode causar perda de dados, teste primeiro com a sinalização --dry-run
para ver exatamente o que seria copiado e excluído.
Os arquivos no destino não serão excluídos se houver erros em algum ponto.
O conteúdo do diretório é sincronizado e não o próprio diretório.. Quando source:path
é um diretório, o conteúdo de source:path
é copiado, não o nome de diretório e o conteúdo. Para obter mais informações,
consulte a explicação ampliada no comando copy
.
Se dest:path
não existe, ele é criado e o conteúdo de source:path
vai para lá.
rclone sync source:path dest:path [flags]
Usando rclone
em vários locais simultaneamente
É possível usar rclone
em vários locais simultaneamente caso você escolha um subdiretório diferente para a saída:
Server A> rclone sync /tmp/whatever remote:ServerA
Server B> rclone sync /tmp/whatever remote:ServerB
Se usar sync
no mesmo diretório, será possível usar rclone copy
, caso contrário, os dois processos poderão excluir outros arquivos uns dos outros:
Server A> rclone copy /tmp/whatever remote:Backup
Server B> rclone copy /tmp/whatever remote:Backup
--backup-dir=DIR
Ao usar sync
, copy
ou move
, quaisquer arquivos que tenham sido sobrescritos ou excluídos serão movidos em sua hierarquia original para esse diretório.
Se --suffix
for configurado, os arquivos movidos terão o sufixo incluído neles. Se houver um arquivo com o mesmo caminho (depois que o sufixo tiver sido incluído) no diretório, ele será sobrescrito.
O remoto em uso deve suportar o movimento ou cópia do lado do servidor e deve-se usar o mesmo remoto que o destino da sincronização. O diretório de backup não deve sobrepor o diretório de destino.
rclone sync /path/to/local remote:current --backup-dir remote:old
Executará sync
de /path/to/local
para remote:current
, mas, para quaisquer arquivos que tenham sido atualizados ou excluídos, eles serão armazenados em remote:old
.
Se estiver executando rclone
por meio de um script, você talvez deseje usar a data de hoje como o nome de diretório passado para --backup-dir
para armazenar os arquivos antigos ou talvez deseje passar --suffix
com a data de hoje.
Sincronização diária de rclone
Planejar um backup é importante para automatizar backups. O modo como isso é feito depende de sua plataforma. O Windows pode usar o Planejador de Tarefas enquanto o MacOS e o Linux podem usar crontabs.
Sincronizando um diretório
O Rclone
sincroniza um diretório local com o contêiner remoto, armazenando todos os arquivos no diretório local no contêiner O Rclone
usa a sintaxe rclone sync source destination
, em que source
é a pasta local e destination
é o contêiner dentro do IBM COS.
rclone sync /path/to/my/backup/directory RemoteName:newbucket
Você pode já ter um destino que está criado, mas, se não tiver, será possível criar um novo depósito usando as etapas acima.
Planejando uma tarefa
Antes de planejar uma tarefa, certifique-se de que você tenha feito seu upload inicial e que ele tenha sido concluído.
Windows
-
Crie um arquivo de texto que é chamado
backup.bat
em algum lugar em seu computador e cole no comando que você usou na seção sobre sincronizando um diretório. Especifique o caminho completo para orclone.exe
e não se esqueça de salvar o arquivoC:\full\path\to\rclone.exe sync "C:\path\to\my\backup\directory" RemoteName:newbucket
-
Use
schtasks
para planejar uma tarefa. Esse utilitário toma vários parâmetros.
-
/RU - o usuário para executar a tarefa. Isso será necessário se o usuário que você deseja usar estiver com logout efetuado.
-
/RP - a senha para o usuário.
-
/SC - configure como DAILY
-
/TN – o nome da tarefa. Chame-o de backup
-
/TR – o caminho para o arquivo backup.bat criado.
-
/ST – o horário para iniciar a tarefa. Isso está no formato de horário de 24 horas 01:05:00 é 1:05 AM. 13:05:00 seria 1:05 PM.
schtasks /Create /RU username /RP "password" /SC DAILY /TN Backup /TR C:\path\to\backup.bat /ST 01:05:00
Mac e Linux
-
Crie um arquivo de texto chamado
backup.sh
em algum lugar em seu computador e cole o comando que você usou na seção sincronizando um Diretório. Parece algo como a seguir. Especifique o caminho completo para o executávelrclone
e não se esqueça de salvar o arquivo.#!/bin/sh /full/path/to/rclone sync /path/to/my/backup/directory RemoteName:newbucket
-
Torne o script executável com
chmod
.chmod +x backup.sh
-
Edite crontabs.
sudo crontab -e
-
Inclua uma entrada na parte inferior do arquivo crontabs. Os crontabs são diretos: os primeiros cinco campos descrevem em ordem minutos, horas, dias, meses e dias úteis. O uso de * denota tudo. Para fazer com que o
backup.sh
seja executado Diariamente à 1h05, use algo semelhante a este:5 1 * * * /full/path/to/backup.sh
-
Salve os crontabs e você estará pronto para começar.