이 글에서는 Linux CentOS 환경에서 Google 드라이브나 OneDrive와 같은 무료 클라우드 스토리지를 연결하는 방법을 살펴봅니다. 클라우드 스토리지는 데이터 백업이나 호스트 간 파일 교환에 유용하게 활용할 수 있습니다. 예를 들어 Windows 데스크톱에 클라우드 스토리지 클라이언트를 설치하고 파일을 업로드하면, Linux에서도 공유된 파일에 자동으로 접근할 수 있습니다(그 반대의 경우도 마찬가지입니다).
웹마스터나 웹 개발자들은 가상 머신이나 컨테이너의 여유 공간이 부족할 때 클라우드 스토리지를 활용할 수 있다는 사실을 모르는 경우가 많습니다. 저는 자주 사용하지 않는 파일을 저장하거나 웹사이트, MySQL/MariaDB 데이터베이스를 백업하기 위해 클라우드 스토리지를 연결할 것을 권장합니다.
이 글에서는 가장 인기 있는 무료 클라우드 스토리지인 OneDrive와 Google 드라이브를 Linux CentOS 7이 설치된 서버에 연결하는 방법을 단계별로 다룹니다.
Linux에서 Google 드라이브를 스토리지로 마운트하는 방법
Linux CentOS 7에서 Google 드라이브를 연결하는 방법을 알아보겠습니다. 설치 과정은 매우 빠르고 간단합니다.
다음 명령어로 Google 드라이브 클라이언트를 다운로드합니다:
# wget -O drive https://drive.google.com/uc?id=0B3X9GlR6EmbnMHBMVWtKaEZXdDg
파일을 /usr/sbin 디렉터리로 이동합니다:
# mv drive /usr/sbin/drive
파일 실행 권한을 변경합니다:
# chmod +x /usr/sbin/drive
Google 드라이브 설치가 완료되었습니다. 이제 클라이언트를 실행하고 로그인만 하면 됩니다:
# drive
브라우저에서 다음 링크로 이동합니다:
https://accounts.google.com/o/oauth2/auth?client_id=367116221053-7n0vf5akeru7on6o2fjinrecpdoe99eg.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=state
링크를 복사하여 PC의 브라우저에서 열고 Google 계정 접근을 허용합니다. 그러면 Linux 콘솔에 입력할 인증 코드가 담긴 링크를 받게 됩니다.
Google 드라이브가 연결되었지만 WebDAV 프로토콜을 사용하지 않습니다(해당 프로토콜을 지원하지 않음). 따라서 별도의 파일 시스템이나 로컬 디렉터리로 표시되지 않으며, drive 클라이언트를 통해서만 접근할 수 있습니다.
다음 명령어로 Google 드라이브의 파일 목록을 확인할 수 있습니다:
# drive list
파일은 네 개의 열로 구성된 테이블 형태로 표시됩니다:
Id– 파일의 고유 코드Title– 파일 이름Size– 파일 크기Created– 생성 날짜
테스트를 위해 파일을 생성하고 Google 드라이브에 업로드해 보겠습니다:
touch testdrive.txt && drive upload --file testdrive.txt
파일이 생성되어 콘솔에서 확인할 수 있습니다. Google 드라이브 웹 인터페이스에서도 파일이 정상적으로 업로드되었는지 확인해 보세요.
기본적으로 Google은 Google 드라이브에 15GB의 무료 공간을 제공합니다.
이제 Linux 서버에 Google 드라이브가 연결되었습니다. Google 드라이브의 가장 큰 장점은 서버를 재시작한 후에도 클라우드 스토리지를 다시 마운트하기 위해 별도의 작업이 필요 없다는 점입니다. 서버를 몇 번이고 재시작해도 Google 드라이브는 자동으로 연결됩니다. 다만 몇 가지 단점도 있습니다. 클라우드 스토리지가 서버에서 별도의 디렉터리로 표시되지 않기 때문에 파일 시스템 수준이나 일반적인 bash 명령어로 파일을 관리할 수 없습니다.
Linux에서 OneDrive 마운트하기
OneDrive는 Microsoft의 클라우드 스토리지입니다. 기본적으로 연결된 계정이 있는 모든 Windows 10 사용자가 사용할 수 있으며 5GB를 무료로 제공합니다. 여기서는 CentOS 7에서 OneDrive를 연결하는 방법을 알아보겠습니다. 설정 과정에서 여러 가지 문제에 직면했지만, 몇 번의 시행착오 끝에 모두 해결할 수 있었습니다. 아래 지침을 순서대로 따라 하시면 됩니다.
먼저 다음 링크에서 회원가입을 진행합니다: https://onedrive.live.com
그런 다음 yum을 사용하여 Linux CentOS에 필요한 패키지를 설치합니다:
# yum groupinstall 'Development Tools' -y
# yum install libcurl-devel -y
# yum install sqlite-devel -y
그다음 프로그래밍 언어 D(dlang)를 설치합니다. OneDrive 클라이언트를 빌드하는 데 필요합니다:
# curl -fsS https://dlang.org/install.sh | bash -s dmd
D(dlang)를 활성화하려면 다음 명령어를 입력합니다:
source ~/dlang/dmd-2.088.0/activate – 사용자 환경에 따라 dmd 버전이 다를 수 있으므로 본인에게 설치된 버전을 지정하세요.
dlang을 활성화한 후 OneDrive 클라이언트를 설치합니다:
cd /opt
git clone https://github.com/abraunegg/onedrive.git
cd onedrive
./configure
make clean; make;
sudo make install
설치가 완료되면 OneDrive 웹 버전에서 클라이언트를 인증해야 합니다. 다음 명령어를 실행합니다:
onedrive
시스템이 브라우저에 입력해야 할 링크를 표시합니다. 접근 요청 웹 폼에서 '허용'을 클릭합니다. 그러면 링크가 Linux 콘솔에 입력해야 할 인증 코드가 포함된 고유 링크로 변경됩니다.
Authorize this app visiting:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=xxxxxx
Enter the response uri https://login.microsoftonline.com/common/oauth2/nativeclient?code=xxxxxx
링크 인증이 완료되면 OneDrive 클라우드 스토리지와 동기화할 수 있습니다:
# onedrive --synchronize
Initializing the Synchronization Engine ...
Syncing changes from OneDrive ...
Processing 6 changes
Creating directory: Pictures
Creating directory: Documents
Downloading file Getting started with OneDrive.pdf ... done.
Creating directory: backup
Downloading file backup/test.txt ... done.
기본적으로 클라우드 스토리지의 모든 폴더가 포함된 /root/OneDrive 디렉터리가 Linux 호스트에 생성됩니다.
# ls -la /root/OneDrive/
테스트를 위해 test2.txt 파일을 생성한 후 스토리지를 동기화했습니다:
# onedrive --synchronize
Initializing the Synchronization Engine ...
Syncing changes from OneDrive ...
Uploading new file ./backup/test2.txt ... done.
파일이 OneDrive 클라우드에 정상적으로 업로드되었습니다.
기본 동기화 디렉터리를 변경하려면 구성 파일에서 sync_dir 매개변수를 수정한 후 다음 명령어를 실행합니다:
# onedrive --synchronize --resync
Initializing the Synchronization Engine ...
Syncing changes from OneDrive ...
Processing 12 changes
서버를 재시작한 후에도 OneDrive 클라이언트가 자동으로 시작되며 다시 로그인할 필요가 없습니다.
다음 글에서는 클라우드 스토리지를 활용해 Linux 서버의 데이터를 백업하는 방법을 자세히 알아보겠습니다.