代码之家  ›  专栏  ›  技术社区  ›  Garglesoap

aws cli、crontab和用户权限之间的交互

  •  -1
  • Garglesoap  · 技术社区  · 6 年前

    我有一个ec2,它应该每5分钟同步到s3,所以我在sudo下安装了awscli,在using aws configure中输入了我的凭据。然后我在/home/ubuntu/创建了一个shell脚本,其中包含如下条目:

     aws s3 cp s3://datasets/B3 /home/ubuntu/data/B3 --recursive
    

    在sudo crontab中:

    */5 * * * * /home/ubuntu/s3syncer.sh
    

    但它不同步。我以前遇到过这个问题,所以我试着:

    /home/ubuntu/.aws aws s3 cp s3://datasets/B3 /home/ubuntu/data/B3 --recursive
    /usr/bin/aws aws s3 cp s3://datasets/B3 /home/ubuntu/data/B3 --recursive
    

    似乎/usr/bin/aws正在工作。。。。 另外,当我以用户ubuntu的身份尝试“aws configure”时,它会显示不正确的权限。

    1. 如何确定编辑aws配置的权限?用sudo安装它使我不能编辑配置为ubuntu吗?

    2. /usr/bin/aws如何更改aws s3同步的执行?

    3. sudo v ubuntu crontab中执行的命令有何不同?

    谢谢,有些是一般的linux问题。。。

    1 回复  |  直到 6 年前
        1
  •  1
  •   BraveNewCurrency    6 年前

    当你这么做的时候 sudo aws configure ,它没有改变您的 $HOME 目录。所以,它把你的信用卡放错了地方( /home/ubuntu 而不是 /root ),并且从ubuntu用户那里获取它们有困难。

    你得跑了 sudo -H aws configure 所以它有 /根 配置时的主目录。那么你的 /usr/bin/aws 以身作则。

    您可能还想删除ubuntu主目录中的根拥有的cred。

    哦,回答你的问题:

    1)AWS没有什么特别的,都是因为你用了 sudo 没有 -H 它把信用证写错地方了。

    2)我不确定这个问题在问什么?

    3)根用户的环境变量通常与普通用户不同。例如, /usr/local/bin 对于某些发行版,不总是位于根路径中。最好养成指定完整路径的习惯。