Linux 에서 데이터를 백업하기 위한 몇 가지 옵션이 있습니다 . fwbackups 및 Sbackup 과 같은 일부 무료 소프트웨어 프로그램을 사용할 수 있습니다 . 그러나 추가 소프트웨어를 설치하지 않고 디렉토리를 백업하는 간단한 방법이 있습니다.
변수, tar 명령 및 date 명령을 사용하여 쉘 스크립트를 생성하여 하위 디렉토리와 함께 디렉토리의 날짜가 지정된 백업 파일을 생성합니다.
셸 스크립트는 기본적으로 순서대로 실행되는 명령 목록을 포함하는 파일입니다. 정기적으로 실행하는 일련의 명령이 있는 경우 이러한 명령을 포함하는 셸 스크립트를 만드는 것이 좋습니다. 그런 다음 스크립트 파일을 실행하기만 하면 명령을 실행할 수 있습니다.
셸 스크립트 파일 만들기
이 예에서는 사용자 가이드용 파일이 포함된 디렉토리를 백업하기 위한 셸 스크립트를 만들 것입니다. 우리는 Ubuntu 에서 (Ubuntu)Gnome 환경을 사용하고 있습니다 .
먼저 장소(Places) 메뉴 에서 홈 폴더(Home Folder) 를 선택하여 홈 디렉토리에 액세스 합니다. 파일 브라우저(File Browser) 가 홈 디렉토리로 열립니다 .
백업을 수행하기 위한 명령을 입력할 새 빈 파일을 만들 것입니다. 오른쪽 창에서 마우스 오른쪽 버튼을 클릭 하고 (Right-click)Create Document | Empty File 팝업 메뉴에서 파일 을 비웁니다.
파일이 목록에 추가되고 이름을 바꿀 준비가 되었습니다. 파일 이름을 입력(Type) 하고 파일 확장자를 .sh 로 지정 합니다.
이 예에서는 파일 이름을 user_guide_backups.sh 로 지정 했습니다.
이제 파일에 명령을 추가해야 합니다. 파일 이름을 마우스 오른쪽 버튼으로 클릭 하고 팝업 메뉴에서 gedit로 열기를 선택합니다.(Open with gedit)
파일이 gedit(gedit) 에서 열립니다 . 파일에 다음 줄을 입력하고 저장(Save) 을 클릭 합니다. 각 행의 목적은 다음과 같습니다.
참고: 다음 텍스트를 복사하여 (NOTE:)gedit 에 붙여넣을 수도 있습니다 . <username> 을 사용자 이름 으로 변경해야 합니다.
#!/bin/bash
SRCDIR="/home/<username>/Documents/my_work/"
DESTDIR="/home/<username>/Backups/"
FILENAME=ug-$(date +%-Y%-m%-d)-$(date +%-T).tgz
tar – create – gzip – file=$DESTDIR$FILENAME $SRCDIR
라인별 설명
다음 표에서는 셸 스크립트 파일의 각 줄이 무엇인지 설명합니다.
Line # |
Description |
1 |
This line must be the first line in a bash shell script, which is the default type of script. |
2 |
This line sets up a variable called SRCDIR and sets the value of it to the directory to be backed up.
NOTE: Be sure to replace <username> with your username. |
3 |
This line sets up a variable called DESTDIR and sets the value of it to the directory into which the backup file will be written.
NOTE: Be sure to replace <username> with your username. |
4 |
This line sets up a variable called FILENAME and sets the value using text and variables containing the date command to add the current date and time to the filename. For example, the filename might be ug-20100212-13:03:45.tgz.
NOTE: When using a variable, always start it with the dollar sign ($). If you use a command as part of a variable, enclose the command and the options for the command in parentheses. |
5 |
This line is the tar command with the following function and options added.
–create |
This function creates a new archive (or truncates an old one if the filename specified already exists) and writes the named files or directory to it. |
–gzip |
This option tells tar to compress the files in the archive using the gzip utility. |
–file |
This option gives tar the filename to use. In this case, we assembled the filename using the DESTDIR, FILENAME, and SRCDIR variables. |
|
셸 스크립트 파일(Shell Script File) 에 대한 권한(Permissions) 편집
스크립트를 실행하기 전에 파일에 올바른 권한이 있는지 확인해야 합니다. 이렇게 하려면 위에서 언급한 대로 홈 폴더(Home Folder) 를 다시 열고 셸 스크립트 파일을 마우스 오른쪽 버튼으로 클릭합니다. 팝업 메뉴에서 속성(Properties) 을 선택 합니다.
속성(Properties) 대화 상자가 표시됩니다 . 실행(Execute) 확인란이 선택 되어 있는지(Make) 확인합니다 .
닫기(Close) 를 클릭 합니다 .
셸 스크립트 실행
셸 스크립트를 실행하려면 Accessories | Terminal응용 프로그램(Applications) 메뉴 에서 터미널 .
터미널(Terminal) 창이 열리면 기본적으로 홈 폴더(Home Folder) 에 있어야 합니다 . 명령줄에 pwd(pwd) 를 입력 하고 Enter 키를 누르면 이 사실이 확인됩니다. 프롬프트에서 ./user_guide_backups.sh 를 입력 하고 Enter 키(Enter) 를 누릅니다 .
홈 폴더 의 (Home Folder)백업(Backups) 폴더에 .tgz 파일 이 있어야 합니다 . 파일 이름을 마우스 오른쪽 버튼으로 클릭하면 사용 가능한 아카이브 프로그램 중 하나에서 아카이브를 열거나 Extract Here(Extract Here ) 명령 을 사용하여 Backups 폴더 에 직접 파일을 추출하는 몇 가지 옵션이 표시됩니다 .
추가 정보
아래 링크는 셸 스크립트, tar 및 date 명령, 기타 Linux 명령에 대한 자세한 정보를 제공합니다.
스크립팅
bash 셸을 사용하여 스크립트를 작성하는 빠른 가이드(A quick guide to writing scripts using the bash shell)
Bash Shell Scripting – 10 Seconds Guide | All about Linux
Bash 참조 매뉴얼(Bash Reference Manual)
리눅스 명령어
tar MAN 페이지(tar MAN Page)
날짜 MAN 페이지(date MAN Page)
bash 명령 – Linux MAN 페이지(bash commands – Linux MAN Pages)
이 페이지를 탐색하면 유용한 bash 쉘 스크립트를 구성하는 데 도움이 됩니다.
Back Up a Directory in Linux using a Shell Script
Therе are several options for backing up your data in Linux. You can use some freely availаble software programs, such as fwbackups and Sbackup. However, there is a simple method of backing up a directory without installing any extra software.
We will create a shell script using variables, the tar command and the date command to create a dated backup file of a directory, with its subdirectories.
A shell script is essentially a file containing a list of commands that are run in sequence. If you have a series of commands you regularly run in order, it is helpful to create a shell script containing these commands. Then, you only have to run the script file to run the commands.
Creating the Shell Script File
For this example, we are going to create a shell script to backup a directory containing files for a user guide. We are using the Gnome environment in Ubuntu.
First, access your home directory, by selecting Home Folder from the Places menu. The File Browser opens to your home directory.
We are going to create a new empty file in which we will enter the commands for performing the backup. Right-click in the right pane and select Create Document | Empty File from the pop-up menu.
A file is added to the list and is ready to be renamed. Type in a name for the file, giving the file an extension of .sh.
For this example, we named our file user_guide_backups.sh.
Now we need to add the commands to the file. Right-click on the name of the file and select Open with gedit from the pop-up menu.
The file opens in gedit. Enter the following lines into the file and click Save. The purpose of each line is listed below.
NOTE: You can also copy the following text and paste it into gedit. Be sure to change <username> to your username.
#!/bin/bash
SRCDIR="/home/<username>/Documents/my_work/"
DESTDIR="/home/<username>/Backups/"
FILENAME=ug-$(date +%-Y%-m%-d)-$(date +%-T).tgz
tar – create – gzip – file=$DESTDIR$FILENAME $SRCDIR
Line-by-Line Description
The following table describes what each line is in the shell script file.
Line # |
Description |
1 |
This line must be the first line in a bash shell script, which is the default type of script. |
2 |
This line sets up a variable called SRCDIR and sets the value of it to the directory to be backed up.
NOTE: Be sure to replace <username> with your username. |
3 |
This line sets up a variable called DESTDIR and sets the value of it to the directory into which the backup file will be written.
NOTE: Be sure to replace <username> with your username. |
4 |
This line sets up a variable called FILENAME and sets the value using text and variables containing the date command to add the current date and time to the filename. For example, the filename might be ug-20100212-13:03:45.tgz.
NOTE: When using a variable, always start it with the dollar sign ($). If you use a command as part of a variable, enclose the command and the options for the command in parentheses. |
5 |
This line is the tar command with the following function and options added.
–create |
This function creates a new archive (or truncates an old one if the filename specified already exists) and writes the named files or directory to it. |
–gzip |
This option tells tar to compress the files in the archive using the gzip utility. |
–file |
This option gives tar the filename to use. In this case, we assembled the filename using the DESTDIR, FILENAME, and SRCDIR variables. |
|
Editing the Permissions on the Shell Script File
Before running your script, you need to make sure the file has the correct permissions. To do this, open your Home Folder again as mentioned above and right-click on the shell script file. Select Properties from the pop-up menu.
The Properties dialog box displays. Make sure the Execute check box is selected.
Click Close.
Running the Shell Script
To run the shell script, open a terminal window by selecting Accessories | Terminal from the Applications menu.
When the Terminal window opens, you should be in your Home Folder by default. Typing pwd on the command line and pressing enter confirms this fact. At the prompt, type ./user_guide_backups.sh and press Enter.
You should have a .tgz file in the Backups folder in your Home Folder. If you right-click on the filename, you see several options for opening the archive in one of the available archiving programs, or extracting the files directly to the Backups folder using the Extract Here command.
More information
The links below provide more information about shell scripts, the tar and date commands, and other Linux commands.
Scripting
A quick guide to writing scripts using the bash shell
Bash Shell Scripting – 10 Seconds Guide | All about Linux
Bash Reference Manual
Linux Commands
tar MAN Page
date MAN Page
bash commands – Linux MAN Pages
Exploring these pages will help you to construct your own useful bash shell scripts.