s3cmd executado na linha de comando não no cron

6

Muitos disseram que o problema é com o ambiente, mas ainda não consigo resolver esse problema. BTW eu estou usando o Ubuntu 9.10 faça o login como usuário e, em seguida, sudo -s usando este comando: s3cmd put file s3://bucket > > funcionou! agora aqui está o script simples destinado a testes:

#! /bin/bash
env >/tmp/cronjob.log

s3cmd put file s3://bucket

emitindo o comando crontab -e

* * * * * /opt/script  2>&1 | logger

Em seguida, usando a cauda para syslogs

Dec 3 23:22:01 ubuntu CRON[10795]: (root) CMD (/opt/script 2>&1 | logger)

Mas ao verificar no s3Fox Organizer, o arquivo não é carregado.

(tentei alterar o #! /bin/sh (sem efeito), colocando crons em /etc/crontab (sem efeito), definindo HOME=/home/user (sem efeito)

Quais são as outras opções para experimentar? Ou outras formas de depurar este problema.

Obrigado

    
por Jonar 03.12.2010 / 16:25

7 respostas

4

Eu tive o mesmo problema. No meu caso, faltava o arquivo de configuração (diferentes variáveis env):

s3cmd -c /root/.s3cfg --no-progress -v put $TODAY_FILE $BUCKET  2>&1

Se você invocar seu comando como:

s3cmd command options 2>&1 | logger

Você deve conseguir ver o problema real dos logs.

    
por 06.07.2012 / 15:21
4

O que funcionou para mim foi garantir que HOME esteja definido para o caminho correto. Se você pode executar o comando sob o usuário joe , seu script deve ficar assim:

HOME=/home/joe
s3cmd ...
    
por 16.05.2013 / 13:34
2

Alterar

s3cmd put file s3://bucket

para

s3cmd put file s3://bucket > /tmp/s3cmd.log

Dessa forma, você pode ver que tipo de problema o s3cmd está tendo.

    
por 09.01.2011 / 11:55
2

Verifique se você está referenciando o s3cmd usando seu caminho completo (/ usr / bin / s3cmd) em seu script. Verifique se você executou s3cmd --configure como o usuário que o cron estará executando, geralmente root.

    
por 04.07.2012 / 15:32
1

o cron é executado sob root user , certifique-se de que seu usuário root tenha a configuração s3cmd ou copie-os para o usuário root

cp -i /home/ubuntu/.s3cfg /root/.s3cfg

    
por 15.06.2016 / 13:52
0

Verifique se $HOME/.s3cfg contém a chave de acesso e o código secreto para s3. Se não, s3cmd tentará buscá-las a partir das variáveis env que são diferentes durante a sessão cron.

    
por 22.04.2016 / 14:39
0

Eu tive o mesmo problema e tentei descobrir por que ele não está sendo executado. Minha solução foi adicionar as seguintes linhas ao topo do meu script:

export HOME=/home/$USERNAME cd /home/$USERNAME

Além disso, você deve chamar o s3cmd com:

/usr/bin/s3cmd

OU coloque a seguinte linha no topo do seu script:

PATH=$PATH:/usr/bin
    
por 26.06.2017 / 15:43