使用 Shell 脚本在 Linux 中备份目录

在Linux(Linux)中备份数据有多种选择。您可以使用一些免费提供的软件程序,例如fwbackupsSbackup。但是,有一种无需安装任何额外软件即可备份目录的简单方法。

我们将使用变量、tar命令和date命令创建一个 shell 脚本,以创建一个目录及其子目录的日期备份文件。

shell 脚本本质上是一个文件,其中包含按顺序运行的命令列表。如果您有一系列定期按顺序运行的命令,那么创建一个包含这些命令的 shell 脚本会很有帮助。然后,您只需运行脚本文件即可运行命令。

创建 Shell 脚本文件

对于此示例,我们将创建一个 shell 脚本来备份包含用户指南文件的目录。我们在Ubuntu中使用(Ubuntu)Gnome环境。

首先,通过从Places菜单中选择Home Folder来访问您的主目录。(Home Folder)文件浏览器(File Browser)打开您的主目录。

打开主文件夹

我们将创建一个新的空文件,我们将在其中输入执行备份的命令。在右窗格中右键单击(Right-click)并选择Create Document | Empty File 弹出菜单中的空文件。

创建一个空的 shell 脚本文件

一个文件被添加到列表中并准备好被重命名。输入(Type)文件的名称,为文件提供扩展名.sh

准备重命名的新文件

对于此示例,我们将文件命名为user_guide_backups.sh

Shell 脚本文件重命名

现在我们需要将命令添加到文件中。右键单击文件名,然后从弹出菜单中选择使用 gedit 打开。(Open with gedit)

使用 gedit 打开 shell 脚本文件

该文件在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

在 gedit 中编辑 shell 脚本文件

逐行说明

下表描述了 shell 脚本文件中的每一行。

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 脚本文件(Shell Script File)权限(Permissions)

在运行脚本之前,您需要确保文件具有正确的权限。为此,如上所述再次打开您的主文件夹,然后右键单击 shell 脚本文件。(Home Folder)从弹出菜单中选择属性。(Properties)

获取 shell 脚本文件的属性

显示属性(Properties)对话框。确保(Make)选中执行(Execute)复选框。

Shell 脚本文件权限

单击关闭(Close)

运行 Shell 脚本

Accessories | Terminal打开终端窗口。应用程序(Applications)菜单中的终端。

打开终端窗口

终端(Terminal)窗口打开时,默认情况下您应该在您的主文件夹中。(Home Folder)在命令行上键入pwd并按 Enter 即可确认这一事实。在提示符下,键入./user_guide_backups.sh并按Enter

运行外壳脚本

您的Home Folder(Home Folder)Backups文件夹中应该有一个.tgz文件。如果您右键单击文件名,您会看到几个选项,用于在可用的存档程序之一中打开存档,或使用“在此处提取”命令将文件直接提取到“(Extract Here )备份(Backups)”文件夹。

.tgz 文件的弹出菜单选项

更多信息

下面的链接提供了有关 shell 脚本、tardate命令以及其他Linux命令的更多信息。

脚本

使用 bash shell 编写脚本的快速指南(A quick guide to writing scripts using the bash shell)

Bash Shell Scripting – 10 Seconds Guide | All about Linux

Bash 参考手册(Bash Reference Manual)

Linux 命令

tar 手册页(tar MAN Page)

日期手册页(date MAN Page)

bash 命令——Linux 手册页(bash commands – Linux MAN Pages)

浏览这些页面将帮助您构建自己有用的 bash shell 脚本。



About the author

我是一名免费软件开发人员和 Windows Vista/7 倡导者。我已经写了数百篇关于操作系统相关主题的文章,包括提示和技巧、修复指南和最佳实践。我还通过我的公司 Help Desk Services 提供与办公室相关的咨询服务。我对 Office 365 的工作原理、功能以及如何最有效地使用它们有着深刻的理解。



Related posts