cron 표현식

Cron syntax has five fields separated by a space, and each field represents a unit of time.

┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
│ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
 *  *  *  *  *

  • 크론 표현식 쓸 때마다 까먹는다
  • 깃허브 액션 문서 보다가 잘 정리되어 있는 거 발견해서 스크랩한다

참고

리눅스 백그라운드 프로세스 확인 명령어

terminal
1
2
3
4
5
6
7
8
9
10
11
// 리눅스 백그라운드 프로세스 확인
ps

// 모든 프로세스
ps -e

// 모든 프로세스 + 풀 리스트(uid, pid, ...)
ps -ef

// 'www'를 포함하는 결과만 표시
ps -ef|grep www

리눅스 shutdown 명령어

1
2
3
4
5
6
7
8
// 지금종료
sudo shutdown -h now

// 재시작
sudo shutdown -r now

// 종료예약 취소
sudo shutdown -c

리눅스에서 파일, 폴더 삭제 명령

1
2
3
4
5
rm -rf {디렉터리명}
rm -rf {파일명}
rm -rf {파일명} {디렉터리명} {이렇게 계속 나열하기}

rm -rf node_modules package-lock.json
  • cli로 삭제할 파일 또는 디렉터리를 하나이상 나열하여 한번에 삭제할 수 있다

shell script 실행하기

terminal
1
2
3
sh my_script.sh

./my_script.sh

리눅스에서 특정 포트를 사용하는 프로세스 확인하기

terminal
1
2
3
lsof -i:8080

kill -9 $(lsof -t -i:8080)
  • ps -ef|grep node 이런식으로 node로 실행한 웹서버를 확인했었는데,
  • node로 실행한 많은 앱이 있을때 어떤게 내가 생각하는 앱인지 헷갈릴때가 있다
  • 이럴때 특정 포트를 사용하는 프로세스를 어떻게 검색할까 하다가 알아보았다

lsof

terminal
1
lsof -i:3000

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 13721 ec2-user 18u IPv6 389226 0t0 TCP *:hbci (LISTEN)

  • 이런식으로 해당 포트를 사용하는 프로세스를 확인할 수 있다
terminal
1
lsof -t -i:3000

13721

  • -t옵션을 추가하면 pid만 깔끔하게 얻을 수 있어
  • kill -9 $(lsof -t -i:3000) 이런식으로 묶어서 사용할 수 있다

참고

shell script 경로에서 실행

bash
1
2
3
dirpath=`dirname $0`
echo $dirpath
cd $dirpath
  • 셸 스크립트 파일 경로로부터 명령을 실행할 수 있다

linux node app 백그라운드 실행

1
nohup npm start &
  • ec2에서 24시간 돌아가는 웹 앱을 돌릴일이 생겼다
  • 그런데 처음에 그냥 마지막에 &만 붙여주면 되겠지 하고
  • npm start & 명령을 치고 리모트를 종료했더니, 리모트를 종료하는 순간 앱 실행도 멈췄다
  • 왜 그런가 했더니 단순히 &을 붙이고 실행한 프로세스는 터미널이 종료하면 같이 꺼진다고 한다

nohup

  • 리눅스에서는 특별한 패키지 설치없이도 완전한? 백그라운드 실행을 가능하게해주는 명령이 있다
1
2
nohup npm start &
exit
  • 이렇게 실행하고 exit을 눌러 나와주면 터미널이 자동으로 닫힌다
  • 하지만 앱은 계속해서 실행되고 있다
  • exit 은 nohup이랑 관계없고, 그냥 터미널을 종료하는 명령이다
  • nohup 명령 후 아무키나 누르면 다시 터미널을 사용할 수 있는 상태가 된다

참고