crontab을 사용하여 ./script.sh 실행

crontab을 사용하여 ./script.sh 실행

을 사용하여 Debian GNU/Linux 10 (buster)간단한 스크립트를 사용하여 PostgreSQL데이터베이스를 저장하고 내 Dropbox계정 에 업로드합니다.Dropbox 업로더도구. 저는 이 작업을 예약하는 데 사용합니다 crontab.

프롬프트에서 직접 스크립트를 실행하면 모든 것이 잘 작동하고 잘 실행되지만 crontab에서 실행하면 업로드 작업이 실행되지 않습니다( ./dropbox_uploader.sh -d upload).

실행 권한에 뭔가가 빠졌나요?

스크립트(my_script.sh)

#!/bin/bash

# Database dump
pg_dump -U postgres -d my_database > /home/my_user/`date +%Y%m%d`_my_database.sql

# Upload to Dropbox
./dropbox_uploader.sh -d upload /home/my_user/`date +%Y%m%d`_my_database.sql `date +%Y%m%d`_my_database.sql

권한

 ls -l my_script.sh
-rwxr-xr-x 1 my_user my_user 732 Apr  7 09:19 my_script.sh

getfacl  my_script.sh
# file:  my_script.sh
# owner: my_user
# group: my_user
user::rwx
group::r-x
other::r-x

ls -l dropbox_uploader.sh
-rwxr-xr-x 1 root root 52481 Apr  6 16:01 dropbox_uploader.sh

getfacl dropbox_uploader.sh
# file: dropbox_uploader.sh
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

크로나

0 9 * * * /bin/sh /home/my_user/my_script.sh

나는 이것을 읽었다우편 엽서우편 엽서dropbox_uploader.sh, 실행 권한 이 누락된 것 같습니다 .

답변1

스크립트를 수정하고 dropbox_uploader.sh 스크립트의 전체 경로를 작성하세요.

#!/bin/bash
# Database dump
pg_dump -U postgres -d my_database > /home/my_user/`date +%Y%m%d`_my_database.sql

# Upload to Dropbox
/home/my_user/dropbox_uploader.sh -d upload /home/my_user/`date +%Y%m%d`_my_database.sql `date +%Y%m%d`_my_database.sql

관련 정보