요즘은 어쩔 수 없이 독점 소프트웨어를 사용해야 하는 경우가 종종 있습니다. 오픈소스 애호가라면 누구나 오픈소스 기반 클라우드 스토리지를 선호하겠지만, 현실적으로 Google, Amazon, Dropbox, Microsoft 같은 대형 기업들이 이미 클라우드 스토리지 시장을 장악하고 있습니다. 이들은 무료로 안정적인 서비스를 제공하는 대신, 법적 요청에 대응하거나 맞춤형 광고를 제공하기 위해 사용자 파일을 검사하거나 읽을 수 있습니다. 어쩌면 피할 수 없는 현실이지만, 그렇다고 해서 이런 서비스를 아예 사용하지 말아야 한다는 뜻은 아닙니다.
OneDrive는 Microsoft가 제공하는 클라우드 스토리지 서비스입니다. 원래 Windows 플랫폼에 최적화되어 있지만, 몇 가지 방법을 활용하면 리눅스 환경에서도 손쉽게 연동할 수 있습니다. 그중에서도 이 글에서 소개할 onedrive 스크립트가 가장 널리 쓰이는 방법입니다.
OneDrive CLI 클라이언트란?
onedrive는 CLI(명령줄 인터페이스) 기반의 오픈소스 클라이언트로, 터미널에서 간단한 명령어만으로 OneDrive와 빠르고 편리하게 동기화할 수 있게 해줍니다.
설치에 앞서 필요한 의존성 패키지들과 git을 먼저 준비해야 합니다. 터미널을 열고 사용 중인 배포판에 맞는 명령어를 입력하세요.
Ubuntu의 경우:
sudo apt install libcurl4-openssl-dev git sudo apt install libsqlite3-dev
Ubuntu 18.04 이상 버전을 사용한다면 snap으로 dmd를 설치하세요:
sudo snap install --classic dmd && sudo snap install --classic dub
그 이하 버전이라면 다음 명령어를 사용합니다:
sudo wget https://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring sudo apt-get update && sudo apt-get install dmd-compiler dub
Fedora의 경우:
sudo yum install libcurl-devel git sudo yum install sqlite-devel curl -fsS https://dlang.org/install.sh | bash -s dmd
Arch Linux의 경우:
sudo pacman -S curl sqlite dlang git
설치하기
의존성 설치가 끝났다면 git으로 소스 파일을 내려받습니다:
git clone https://github.com/abraunegg/onedrive.git
그다음 컴파일하고 설치합니다:
cd onedrive ./configure make sudo make install
설치가 완료되면 Microsoft 계정 인증 절차를 거쳐야 합니다. 터미널에 다음 명령어를 입력하세요:
onedrive
그러면 인증을 위해 해당 URL에 접속하라는 안내가 나타납니다.

브라우저에서 OneDrive 계정에 로그인한 뒤, 앱이 계정에 접근할 수 있도록 권한을 허용해 주세요.

권한 승인이 끝나면 빈 흰색 페이지가 표시됩니다. 이때 브라우저 주소창의 URL 전체를 복사해서 터미널 프롬프트에 붙여넣으면 됩니다.

이것으로 초기 설정이 모두 완료됩니다.
동기화 시작하기
클라우드의 OneDrive 파일을 로컬 폴더로 동기화하려면 다음 명령어를 실행하세요:
onedrive --synchronize
클라우드에 저장된 모든 파일이 로컬 폴더로 다운로드되기 시작합니다.
또는 로컬 폴더의 변경 사항을 실시간으로 감시하게 하려면 다음 명령어를 사용할 수 있습니다:
onedrive --monitor
설정(Configuration)
설정 파일 'config'는 onedrive git 폴더 안에서 찾을 수 있습니다. 실제로 적용하려면 '~/.config/onedrive/' 폴더로 복사해야 합니다:
mkdir -p ~/.config/onedrive cp ~/onedrive/config ~/.config/onedrive/config
설정 파일을 열면 주요 항목 세 가지를 조정할 수 있습니다:
- sync_dir: OneDrive 파일을 저장할 로컬 경로입니다. 이 폴더에 추가되거나 삭제된 모든 파일이 클라우드와 동기화됩니다.
- skip_files: 동기화에서 제외할 파일 유형 또는 패턴을 지정합니다.
- monitor_interval: 동기화 작업 사이의 시간 간격을 설정합니다.
설정을 변경한 후에는 저장하고 onedrive를 재시작하세요. 언제든지 다음 명령어로 현재 설정 상태를 확인할 수 있습니다:
onedrive --display-config

선택적 동기화(Sync List)
OneDrive 폴더 전체가 아니라 특정 파일이나 폴더만 동기화하고 싶다면 'sync_list'라는 이름의 파일을 만들어 '~/.config/onedrive' 폴더에 저장하세요. 파일 안에는 동기화할 파일·폴더의 상대 경로(동기화된 OneDrive 폴더 기준)를 한 줄씩 적어 넣으면 됩니다.
로그인 시 자동 실행 설정
기본적으로 onedrive는 사용자가 로그인해도 자동으로 시작되지 않습니다. 부팅 후 자동으로 실행되게 하려면 onedrive --monitor 명령어를 시작 프로그램(startup application) 목록에 추가해 두세요.
이제 여러분의 OneDrive가 리눅스 시스템과 원활하게 동기화될 것입니다. 어떤 방식으로 OneDrive를 연동하고 계신가요? 다른 도구를 선호하신다면 그 이유도 함께 댓글로 알려주세요.
이 글은 2019년 3월에 작동하는 저장소 정보를 반영해 업데이트되었습니다.