본문으로 건너뛰기

"Shell" 태그로 연결된 4개 게시물개의 게시물이 있습니다.

모든 태그 보기

· 약 1분

sudo: unable to resolve host 에러 해결#

상황#

  • sudo 명령어가 필요한 상황에서 sudo: unable to resolve host가 발생하는 상황

  • hostname과 hosts의 정보가 달라서 생기는 문제

해결 방법#

  • sudo vi /etc/hosts

    2021-01-16-210113-image-0

  • 127.0.0.1 localhost 뒤에 127.0.1.1 ip-{hostname} 를 추가

    2021-01-16-210113-image-1


· 약 1분

ssh를 이용하여 원격 서버와 양방향 파일 전송하기#

원격 → 로컬#

scp [옵션] [계정명]@[원격 IP 주소]:[원본 경로] [전송 받을 위치]
scp abc@111.222.333.444:/home/abc/index.html /home/me/

로컬 → 원격#

scp [옵션] [원본 경로 및 파일] [계정명]@[원격 IP 주소]:[전송할 경로]
scp /home/me/index.html abc@111.222.333.444:/home/abc/

· 약 2분

Crontab으로 매일 스크린샷 관리하기#

환경#

  • MacOS + zsh

  • Google Drive File Stream (무제한 용량)


목적#

  • MacOS 용량 부족

  • 찍은 스크린샷이나 동영상 보관

  • 하루마다 스크린샷 폴더에 파일이 쌓이는 것 방지

  • Dock에서 바로 사용할 수 있게 관리

스크린샷 설정#

  • 스크린샷의 저장 위치를 구글 드라이브 파일 스트림의 특정 폴더로 지정

쉘 스크립트#

  • screenshots 폴더에 파일이 있으면

    • 모두 prev-screenshots로 복사한다.

    • screenshots 폴더의 파일을 모두 지운다 (지울 때 confirm [y/n] 메시지 띄우지않게 옵션 설정)

  • 없으면 에코

~/scripts/mv_screenshots.sh

#!/bin/zsh
target=/Volumes/GoogleDrive/내\ 드라이브/이미지/screenshotsarchive=/Volumes/GoogleDrive/내\ 드라이브/이미지/prev-screenshots
if find "$target" -mindepth 1 -print -quit 2>/dev/null | grep -q .; then    setopt localoptions rmstarsilent    cp -R "$target" "$archive/`date +\%Y-\%m-\%d`"    rm "$target"/*else    echo "Target '$target' is empty"fi

Bash checking if folder has contents

Why does rm -f ask me for confirmation on zsh?


크론탭 설정#

  • 매일 오후 11:30에 쉘 스크립트를 실행하고 실행한 결과를 당일의 로그 파일로 기록한다.

crontab -e

30 23 * * * zsh ~/scripts/mv_screenshots.sh >> ~/log/job_`date +\%Y-\%m-\%d`.log 2>&1

작업 스케쥴러 크론(Cron) 간단 사용법

Crontab.guru - The cron schedule expression editor