Проблема выполнения удаленного скрипта при запуске cronjob на удаленном сервере с Ansible - PullRequest
0 голосов
/ 13 мая 2019

Я настраиваю cronjob под пользователем root для резервного копирования моего сервера Jenkins через Ansible. Ожидается, что cronjob будет еженедельно запускать скрипт оболочки, который копируется из моей локальной папки.

Следующий код - это то, что я произвел

- name: copy backup scripts to the server
  copy:
    src: ./../../scripts/swift-backup.sh
    dest: /scripts/swift-backup.sh
    owner: root
    group: root
    mode: 777

- name: check if file exists
  file:
    path: /scripts/swift-backup.sh
    state: file

- name: Automatic backup the VM
  cron: 
    name: "Automatic backup to swift with rclone"
    minute: "0"
    hour: "0"
    weekday: "0"
    job: "sh /scripts/swift-backup.sh"

check if file exists успешно находит файл. Я даже вручную найду скрипт на сервере. Однако вот журнал, который я получил от задания cron:

sh: 0: Can't open scripts/swift-backup.sh

В чем здесь проблема, когда я выполняю всю задачу? Вот код внутри скрипта:

#!/usr/bin/env bash

. ./../openrc-monsoon3-MLOps
while [ $(rclone lsd monsoon:jenkins_backup_test | wc -l) -ge 3 ] 
do
    # find and remove oldest backup folder
    rclone delete monsoon:jenkins_backup_test/$(rclone lsd monsoon:jenkins_backup_test | head -1 | awk '{print $NF}')
done
# Push file to monsoon
rclone copy backup/ monsoon:jenkins_backup_test -L
rm backup/* -rf
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...