일상 루틴 오토메이션...2: cron

내가 linux에서 가장 사랑하는 데몬 중 하나가 crond이다. 대부분의 OS가 이런 기본적인 스케줄러는 다 갖추고 있지만 (왜냐면 unix에서 있었으니까) user에게 잘 열려져있고 복잡한 일을 수행하게끔 잘 도와주진 않는다.

뭐니뭐니해도 window같은 OS는 그 자신이 늘상 켜져있는 상태로 뭔가를 한다기보단 랩탑이나 데스크탑에 설치되어 그때 그때 사용되는 것을 가정해두고 있기 때문이 아닐까 하는데, 어쨌든 cron이 일반 user에게 열려있어서 정해진 시간에 정해진 일을 하게끔 만들어 놓은 것은 참으로 요긴하다. 그것도 분단위 또 요일단위 스케줄링이 가능하다는 것도 그러하다. 요샌 거의 모든 OS가 NTP를 이용해서 network으로부터 time reference를 가져오기 때문에 시간은 정말 너무너무 정확하다. 사실 개인이 가지고 있는 phone도 마찬가지고 portable device 모두 네트워크로부터 시간 정보를 가져와서 정확하기 이를데가 없는 세상이니까. 다만 네트워크와 연결하는 기능이 없는 내 차만 홀로 제맘대로의 시간을 유지하고 있을 뿐이다.

나는 이걸 정말 다양한 용도로 쓰고 있는데, rtorrrent로 파일을 받아놓는 경우 특히 유용하다.

rtorrent는 수시로 잘 죽는 일이 있어서 그것부터 잘 관리를 해주는 것도 중요하고 받아오는 데이터의 peer가 너무 오래되서 갈아주어야 할 때도 필요하고 특히나 어떤 것을 거의 구독하다시피 해서 받아오는 경우엔 regex와 wget을 쓰면 이 역시도 자동화할 수 있다. 수시로 방문해서 새로운 것이 올라왔으면 받아오게 만드는 그런 것이지. 또 다 받아왔으면 큐에서 지워버리고 받아온 결과물을 완료된 파일이 있는 곳으로 이동시키기도 하고, 오래 도록 진척이 없으면 자동으로 지워버리게 할 수도 있다. 또 불의의 상황에서 tracker가 모두 날아가버리더라도 수시로 체크해서 강제로 채워넣기를 한다거나 할 수도 있다. 이런 면에서 rtorrent는 상당히 잘 만들어졌다고 볼 수 있다.

사실 일상의 일을 오토메이션 하는 것은 처음에는 뭔가 쓸데없이 오버하는 게 아닌가 싶은데, 일단 해놓고 나면 마치 누군가 내 삶을 대신 살아주고 있는 느낌이 들기도 한다. 돈이 많거나 사업을 해서 누군가를 고용해서 내 일을 시키는 기분이 이런 것일까 싶기도 하다만. 대부분 누군가에게 일을 시킬 때 내 맘 같이 일처리를 해오는 사람을 본 적이 없어서 사실 그보다 더 맘에 들고 기특하다고 봐야 할 것 같다. 적어도 사업을 해서 사람을 부리거나 하는 것과 컴퓨터로 일을 시키는 것은 너무 다르다. 후자에 익숙하면 전자는 거의 나의 정신 개조를 하지 않는 이상 답답해서 미칠 때가 많으니까.

솔직히 말해서 누군가에게 뭘 관리시키는 일을 시키는 것보다 그냥 cron과 잘 짜놓은 스크립트로 관리시키는 것이 난 (내 정신 건강에) 백번 유익하다고 본다. 여기에 chatGPT같은 AI를 붙여두면 또 그외의 여러 가지 툴들을 이용하면 혼자서 고객을 응대하는 사업을 하는 것도 충분히 가능하다고 나는 생각한다.

어쩔 땐 때마다 장을 보고 어딘가에 전화 연락을 해놓고 여행 갈 곳을 물색해서 예약을 해놓는다거나 하는 일도 모두 자동화하고 싶을 때가 있다. 그냥 난 멀건히 자동화가 안되는 나의 일들만 건드려주고 말이다.

이렇게 살다보니 현관에 그동안 쌓인 먼지와 거미줄이 가득하고 마당에도 어딘가에서 날아온지 모를 것들로 가득하다. 이런 건 정말 자동화가 안된다. 아 물론 돈이 많아서 누군가를 고용해서 청소시키는 일까지 자동화하면 좋겠는데 그건 안되겠고.