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 -'
반응형
'Linux' 카테고리의 다른 글
[Nginx] conf 설정 후 index.php 접속시 파일이 다운로드 될때 (0) | 2021.05.08 |
---|---|
[Linux] SSL 인증서 crt 파일 pem 으로 변환하기 (0) | 2021.05.06 |
[Linux] 폴더별 사용 용량 확인 방법 (0) | 2021.03.08 |
tar.gz 압축 방법 (0) | 2020.11.11 |
ncloud 에서 NAS 확장 Mount 하기 (0) | 2020.01.29 |