crontab 명령을 종료할 수 없습니다

crontab 명령을 종료할 수 없습니다

Ubuntu 16.04 LTS를 새로 설치하여 사용하고 있습니다.
내가 입력할 때마다:

sudo crontab -e

또는

sudo -u www-data crontab -e

이 명령은 숫자만 인쇄하고 그 외에는 아무것도 인쇄하지 않습니다. 아무리 없애려고 해도 그럴 수 없습니다.

질문

  • 먼저 위 명령을 어떻게 종료합니까? 난 그냥 붙어있어.
  • 명령이 crontab 항목을 표시하지 않는 이유는 무엇입니까?
  • 위 명령으로 crontab 항목을 표시하려면 어떻게 해야 합니까?

편집하다
저는 vim.basic 편집기를 선택했습니다:

sudo update-alternatives --config editor

하지만 빈 인쇄하면 echo $EDITOR.

또한
crontab -e-> 잘 작동합니다
sudo -u www-data crontab -e. -> 위와 같이 멈춥니다.

답변1

기본 편집기가 설정되어 있지 않고 기본값이 ed.

실행하면 얻을 수 있는 것:

env | egrep 'EDITOR|VISUAL'

sudo env | egrep 'EDITOR|VISUAL'

sudo -u www-data env | egrep 'EDITOR|VISUAL'

종료 방법은 ed다음을 입력하는 것입니다.q↵ Return

다른 편집기를 설정하려면 다음을 수행할 수 있습니다.

sudo -u www-data EDITOR=$EDITOR crontab -e

답변2

먼저 위 명령을 어떻게 종료합니까? 난 그냥 붙어있어.

어떤 편집기를 사용하고 있는지 알 수 없습니다. Esc :q(vim), Ctrl-x(nano), Ctrl-x Ctrl-c(emacs) 또는 q( )를 시도해 보세요 ed.

  • 명령을 실행 select-editor하고 사용하려는 편집기를 선택하십시오.
  • 대안: 환경 변수 EDITORVISUAL선호하는 편집기를 설정하십시오.
    예: export EDITOR=emacsemacs 또는 export EDITOR=nanonano 사용.
  • 그런 다음 crontab -ecrontab 편집을 실행하십시오.
  • crontab -lcrontab의 내용을 표시 하는 데 사용됩니다.

답변3

다음 명령을 적용했습니다.

# Interactive way
update-alternatives --config editor
# And choose 3 (vim.basic)

# Non Interactive way
sudo update-alternatives --set editor /usr/bin/vim.basic

# Verify as
sudo update-alternatives --query editor

또는 이를 추가 ~/.bashrc하거나 ~/.bash_profile보관하고 다시 로드하여 변경 사항을 반영할 수 있습니다.

export VISUAL=vim
export EDITOR="$VISUAL"

www-data사용자의 crontab 에는 다음을 사용합니다.

sudo crontab -u www-data -e

이로써 문제가 해결되었습니다.

답변4

crontab -e를 사용하지 마십시오

  • 시스템, 계정 및 세션이 어떻게 구성되어 있는지 정확히 알지 못하면 다음에 무슨 일이 일어날지 알 수 없습니다.
  • 이 중 하나를 변경하면 다른 일이 발생합니다
  • 조작할 수 있는 편집기에서 crontab을 열더라도 변경 사항을 취소하는 것은 까다로울 수 있습니다.

대신 crontab을 임시 파일에 작성하고 원하는 편집기를 사용하여 파일을 다시 cron으로 가져옵니다.

$ crontab -l >mycron
$ vi mycron
$ crontab <mycron

(또한 www-data 사용자로 cron 작업을 실행하지 말 것을 강력히 권장합니다)

관련 정보