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
rcloneourclone.exedo archive. - Execute
rclone configpara 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.
Linux instalação a partir de binário pré-compilado
-
Busque e descompacte 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 adequado:
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 configpara configurar:rclone config
macOS instalação a partir de binário pré-compilado
-
Faça o download do
rclonepacote:cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip -
Extraia o arquivo baixado e
cdpara a pasta extraída:unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64 -
Mova
rclonepara seu$PATHe 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 configpara configurar:rclone config
Configurar o acesso ao IBM COS
-
Execute
rclone confige selecionenpara 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-readeprivatesã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
Na lista a seguir de comandos comumente usados, REMOTE_NAME é o nome que você inseriu para a configuração quando configurou o acesso a IBM Cloud Object Storage e BUCKET_NAME é o nome de um bucket.
Criar um depósito
rclone mkdir REMOTE_NAME:BUCKET_NAME
Listar depósitos disponíveis
rclone lsd REMOTE_NAME:
Listar o conteúdo de um depósito
rclone ls REMOTE_NAME:BUCKET_NAME
Copiar um arquivo de local para remoto
rclone copy /Users/file.txt REMOTE_NAME:BUCKET_NAME
Copiar um arquivo de remoto para local
rclone copy REMOTE_NAME:BUCKET_NAME/file.txt /Users/Documents/
Excluir um arquivo no remoto
rclone delete REMOTE_NAME:BUCKET_NAME/file.txt
Comandos de lista
Existem vários comandos de lista relacionados:
lspara listar o tamanho e o caminho somente de objetoslslpara listar o horário de modificação, o tamanho e o caminho somente de objetoslsdpara listar somente diretórioslsfpara listar objetos e diretórios em formato fácil de analisarlsjsonpara 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, não o diretório em si. 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 REMOTE_NAME:BUCKET_NAME
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.batem 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.exee não se esqueça de salvar o arquivo.C:\full\path\to\rclone.exe sync "C:\path\to\my\backup\directory" REMOTE_NAME:BUCKET_NAME -
Use
schtaskspara 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.shem 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ávelrclonee não se esqueça de salvar o arquivo.#!/bin/sh /full/path/to/rclone sync /path/to/my/backup/directory REMOTE_NAME:BUCKET_NAME -
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.shseja 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.