ssh로 명령어 보내기

ssh 로 로그인 할 뿐만 아니라 명령어를 보내고 값을 바로 표시할 수도 있다

ssh username@hostname 'command'

사용자 인터랙션이 필요한 경우에는 -t 플래그를 준다.

ssh -t username@hostname 'command'

포트 번호가 별도로 지정된 경우 -p 플래그 뒤에 포트 번호를 준다.

ssh -p portnumber -t username@hostname 'command'

매번 간단한 명령어 실행시키려고 로그인하기 귀찮았는데 좋은 방법이 있었다.


참조


open

이리저리 파일을 정리하다보면 커맨드 라인으로 정리하는 게 편할 때가 있고 파인더를 쓰는 게 편할 때가 있습니다. 파인더에서 커맨드라인으로 넘어갈 때 서비스든 cd 명령어를 쓴다면 커맨드라인에서 파인더로 넘어갈 때 open 명령어를 자주 쓰는 편입니다.

open .

오늘 open 명령어를 처음으로 파라미터 없이 주고 결과물을 읽어봤는데 -b 플래그를 줘서 미리 설정한 어플리케이션으로 열 수 있더라구요. 앞으로 유용하게 써먹을 수 있을 것 같습니다. 그 전에는 귀찮게 -a 플래그로 어플리케이션을 수동 지정했었거든요. 그러느니 그냥 파인더로 가서 더블클릭하는 게 빠르지.

유닉스 운영체제들이 공통적으로 공유하는 부분이라고 생각했는데 대충 찾아보니 macOS에 한정된 기능이라는 모양입니다. [StackExchange] 리눅스에서는 PATH 안에 실행파일을 넣어놓거나 적어도 PATH에 symlink 시켜놓고 어플리케이션을 실행하면서 뒤에 파일을 바로 파라미터로 준다는 거죠.

open 명령어가 굉장히 편하다고 생각했는데 저렇게 놓고 보니까 리눅스의 방법이 더 효율적인 시나리오도 쉽게 상상이 가네요. 언제나 그렇듯이 일장일단이 있는 듯 합니다.


git commit 으로 이슈 닫기

split_download 작업하면서 커밋을 쓰다가 이슈를 한 번에 닫을 수 있나 궁금해졌다. 가능함

커밋 메세지에 종료 키워드와 이슈 번호를 넣어두면 해당 이슈가 종료된다.

종료 키워드

- close
- closes
- closed
- fix
- fixes
- fixed
- resolve
- resolves
- resolved

split_download.sh

우리나라는 일반적으로 인터넷 속도가 상당히 빠른 편이다. 국가 차원에서 쓸 데 없이 막는 곳이 많아서 문제긴 하지만 어쨌든 속도 자체는 빠르다.

하지만 인터넷에서 필요한 파일들을 다운받다보면 파일이 호스팅된 서버의 속도가 느려서 다운로드 속도가 복장터지게 하는 경우가 왕왕 있다. 또는 트래픽이 몰린다든가.

그럴 때 유용하게 썼던 앱이 바로 downloadshuttle 이다. 다운로드 링크만 따면 파일을 분할해서 받을 수 있도록 해주는 앱이다.

이 앱이 한가지 아쉬웠던 점이 맥에서만 돌아간다는 점이었다. 우분투나 윈도우에서도 사용할 수 있는 방법이 있었으면 했다. split download 키워드로 검색을 했더니 curl 명령어에서 --range 옵션으로 다운로드 데이터를 바이트 단위로 나눠 받을 수 있다는 것을 알게 되었다. 내친 김에 bash 스크립트로 작성해보자는 생각이 들었다. 나중에 알게 된 사실인데 이미 2013년에 거의 완전히 같은 코드를 작성한 리포가 있었다는 게 함정이라면 함정이다.

일단 작성한 코드는 Github 리포 에 올려두었다. 3.2.56(1) 버전 bash 에서 동작하는 걸 확인했고 맥의 경우 gawk 를 별도로 설치해주어야 한다.1 macOS 의 경우 curl 이 기본적으로 탑재되어 있으며 리눅스의 경우도 대부분 curl이 기본 탑재되어 있다.2

스크립트 를 내려받고 아래처럼 사용할 수 있다.

bash split_download.sh '다운로드링크'

쪼개는 수를 달리하고 싶은 경우에는 '다운로드링크' 뒤에 쪼개고자 하는 갯수를 입력하면 된다.

bash split_download.sh 'https://raw.githubusercontent.com/Canorus/split_download/main/split_download.sh' 8

같은 경우 8개로 나눠 받은 뒤 합치게 된다. 기본값은 5개로 나눠받는다.

위에서 언급한 2013년 코드 와 다른 점은 쪼개는 갯수를 인자로 줄 수 있다는 점이다. 나머지는 스크립트가 알아서 나눠서 내려받고 병합한다.

이래저래 bash 가지고 짱구를 굴릴 수 있어서 재밌었다. 그리고 생각보다 결과물이 빨리 튀어나와서 다행이라고 생각한다. 솔직히 여기서 이틀만 더 늘어졌어도 포기할 뻔 했다.


참조 페이지

  1. homebrew 를 사용하여 설치하면 편하다 

  2. curl -v 를 입력하여 확인할 수 있다. 


Egg Timer 2 Alfred 4에서 사용하기

알프레드 워크플로우 중에 Egg Timer 2 라는 것이 있(었)는데요, 이름 그대로 타이머, 알람 기능을 추가해주는 역할을 합니다. 요게 예전에는 잘 작동하던 것 같았는데 오늘 써보려니까 에러가 나더랍니다.

설치한 것도 오래되고 해서 아 이제 미호환인가보다 떠나보내야지 했었는데 여기를 보니 단순히 경로 문제였답니다. first_run_check.sh 파일과 includes.sh 파일에서 알프레드 앱의 경로만 올바르게 고쳐주면 멀쩡하게 사용이 가능하다네요. 덕분에 떠나보낼 뻔 했던 워크플로우 하나 살렸습니다. 헿