Проверьте, существует ли файл в Bash - PullRequest
0 голосов
/ 02 октября 2019

У меня есть bashscript, который проверяет, существует ли файл на удаленном сервере. Когда я выполняю этот bashscript в командной строке, он работает нормально и говорит мне, что файл существует (как и должно быть). Но когда crontab выполняет этот bashscript, он говорит, что файл не существует (хотя он будет существовать).

Кто-нибудь может мне помочь?

myscript.sh

    #!/bin/bash
    if $(sudo ssh -i <path/to/ssh/keys> <user>@<ip> "[[ -f /etc/ssl/file.txt  ]]");then
       echo "exist"
    else
       echo "not exist"
    fi

crontab:

    */1 * * * * bash /home/user/myscript.sh | mail -s "betreff" user@email.com

stderr: (когда я запускаю скрипт в командной строке)

    ++ sudo ssh -i <path/to/ssh/keys> <user>@<ip> '[ -f /etc/ssl/file.txt ]'
    + echo exist
    exist

stderr: (когда я запускаю скрипт в cron)

    ++ sudo ssh -i <path/to/ssh/key> <user>@<ip> '[ -f /etc/ssl/file.txt ]'
    Warning: Identity file /root/.ssh/key/keyfile not accessible: No such file or directory.
    Permission denied, please try again.
    Permission denied, please try again.
    root@<ip>: Permission denied (publickey,password).

Разрешение ключевого файла ssh:

    -rw------- 1 root     root     3243 Sep 30 15:34 keyfile
    -rw-r--r-- 1 root     root      741 Sep 30 15:34 keyfile.pub

Спасибо за помощь: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...