저는 리눅스를 배우기 때문에 여기서 명백한 것을 간과 한 것처럼 나와 함께하시기 바랍니다. 현재 사용자 지정 셸 스크립트를 실행하도록 cron 작업을 설정하려고합니다. 이 스크립트는 터미널에서 제대로 실행되지만 cron을 통해 실행되지는 않습니다. 다음은 세부 사항입니다. 숙련 된 사용자의 통찰력에 감사드립니다.crontab via Linux Mint에서 쉘 스크립트가 실행되지 않습니다.
시스템 정보
RELEASE=17.3
CODENAME=rosa
EDITION="Cinnamon 64-bit"
DESCRIPTION="Linux Mint 17.3 Rosa"
DESKTOP=Gnome
TOOLKIT=GTK
NEW_FEATURES_URL=http://www.linuxmint.com/rel_rosa_cinnamon_whatsnew.php
RELEASE_NOTES_URL=http://www.linuxmint.com/rel_rosa_cinnamon.php
USER_GUIDE_URL=help:linuxmint
GRUB_TITLE=Linux Mint 17.3 Cinnamon 64-bit
사용자 정의 쉘 스크립트
위치 : /usr/local/bin/make_ls_files.sh
내용 :
#!/bin/bash
# test script to echo ls stout to files
# (learning cron jobs)
# tilde path not working in cron, trying full path
# ls > ~/ls_file_$(date +%F_%H-%M-%S).log
ls > /home/zion/ls_file_$(date +%F_%H-%M-%S).log
전대 t 터미널에서 잘 실행되면 (cwd
에서) 출력은 ls
인 /home/zion/ls_file_2016-11-17_17-38-37.log
파일을 출력합니다.
는 지금, 나는 설정 crontab -e
를 통해 cron 작업이 : 나는 그것이 실제로 실행에있는 시스템 로그에서 볼
# create text files every minute:
PATH=/usr:/usr/bin:/usr/local/bin
* * * * * make_ls_files.sh >> /usr/local/bin/make_ls_files_log.log 2>&1
있지만 출력 또는 로그 항목이 생성되지 않습니다. 시스템 로그 방송이 : 왜 작동 방법 디버깅하는 방법하지 않습니다에 관한
...
Nov 17 17:42:01 zion-VirtualBox CRON[4845]: (zion) CMD (make_ls_files.sh >> /usr/local/bin/make_ls_files_log.log 2>&1)
Nov 17 17:42:01 zion-VirtualBox CRON[4844]: (CRON) info (No MTA installed, discarding output)
Nov 17 17:43:02 zion-VirtualBox CRON[4850]: (zion) CMD (make_ls_files.sh >> /usr/local/bin/make_ls_files_log.log 2>&1)
Nov 17 17:43:02 zion-VirtualBox CRON[4849]: (CRON) info (No MTA installed, discarding output)
어떤 아이디어?
편집 01 : 포함,
* * * * * make_ls_files.sh 2>>$HOME/crontab.log
지금 어디 선가 얻고, 로그 파일이 /home/zion/crontab.log
에 생성됩니다 :
/usr/local/bin/make_ls_files.sh: line 6: date: command not found
/usr/local/bin/make_ls_files.sh: line 6: ls: command not found
왜 ls
을
나는에 cron 작업을 변경 date
이 인식되지 않습니까? 모든
EDIT 02
덕분에, 나는 여기에 몇 가지를 배웠습니다. 루슬란 밖으로 pointend으로 나는이 문제를 가지고 :
# create text files every minute:
PATH=/bin:/usr:/usr/bin:/usr/local/bin
# * * * * * make_ls_files.sh >> /usr/local/bin/make_ls_files_log.log 2>&1
* * * * * make_ls_files.sh 2 >> $HOME/crontab.log
crontab에서'make_ls_files.sh '에 대한 전체 경로를 사용해야합니다. * * * * * /usr/local/bin/make_ls_files.sh >> /usr/local/bin/make_ls_files_log.log 2> & 1' – bansi
@ bansi,'/ usr/local/bin /'이'$ PATH'에있는 경우 필요하지 않습니다. –
@RuslanOsmanov, Cron의 기본 경로는 구현에 따라 다르며 배포판 간에는 신뢰할 수 없습니다. 그래서 항상 안전한면에 있어야합니다. – bansi