Linux

[Linux] crontab 파일 수정 없이 한줄로 작성하기

먹세 2021. 3. 25. 16:45

sh파일 만들어서 crontab으로 실행하기

머신의 hostname 이나 현재날짜 등을 파일명으로 사용하고 싶을때에는

crontab에 직접 사용할 수 없다.

그래서 sh 파일에 작성 후 sh  파일을 crontab에 등록 해야 한다.

sudo vi mycrontab.sh
#!/bin/bash
aws s3 cp /var/app/storage/logs s3://s3domain.com/logs/`date +%F`/$(hostname -s)/ --recursive

위 처럼 .sh 파일을 생성 후 

sudo crontab -e
// 10분마다 sh파일 실행
*/10 * * * * sudo sh /var/app/current/mycrontab.sh
sudo service crond restart

 

위와같이 crontab 을 수정해서 등록했다면,

한줄의 명령어로 crontab 제일 하단에 넣는 방법을 알아보자

 

cat <(crontab -l) <(echo "*/10 * * * * /var/app/current/mycrontab.sh") | crontab -

위 처럼 cat을 사용해서 crontab 하단에 명령줄을 넣을 수 있다.

 

그러나 관리자권한으로 실행하고 싶을 때 sudo cat 으로 하면 정상실행이 안되기 때문에 아래처럼 사용

 sudo bash -c 'cat <(crontab -l) <(echo "*/10 * * * * sudo sh /var/app/current/mycrontab.sh") | crontab -'

 

 

반응형