7

gsutil has been installed here:

/usr/local/bin/gsutil

My crontab looks like this (i'm logged in as root):

 */1  *  *  *  * /home/deploy/cron/job.sh >> /home/deploy/cron/test.log 2>&1

job.sh:

#!/bin/sh
PATH="$PATH":/usr/local/bin/gsutil
now=$(date +"%m_%d_%y_%R");
cp /home/deploy/testfile.txt /tmp/testfile_$now.txt;
gsutil cp /home/deploy/testfile.txt gs://testbucket/testfile_$now.txt;

echo "saved file at $now";

When I look in my log file I see this:

/home/deploy/cron/job.sh: 5: /home/deploy/cron/job.sh: gsutil: not found
saved file at 07_20_15_13:03

Any idea what I'm doing wrong?

Justin Young
  • 2,393
  • 3
  • 36
  • 62
  • 1
    `$PATH` does not contain full paths to binaries. It contains paths to the directories that contain the binaries. Either fix the `PATH` assignment or just use the full path to `gsutil` in the call itself. – Etan Reisner Jul 20 '15 at 17:19

2 Answers2

17

Had the same issue, you need to specify the full path when you call gsutil. In your case:

/usr/local/bin/gsutil/gsutil cp /home/deploy/testfile.txt gs://testbucket/testfile_$now.txt;
Machavity
  • 30,841
  • 27
  • 92
  • 100
Alberto C
  • 783
  • 8
  • 13
  • 2
    This solution helped me solve this problem, I'd like to add for anyone else that if your path is different for gsutil you can run "which gsutil" to get the correct path, using that path rather than /usr/local/bin/gsutil. – Don F Oct 27 '19 at 15:17
  • 1
    "whereis gsutil" will also work – kamran kausar Aug 24 '22 at 09:23
3

yes, you have use the full path gsutil command to use in crontab

/root/gcloud/gsutil cp ...