如何压缩 Unix Web 服务器上的目录并按计划通过电子邮件发送?

如何压缩 Unix Web 服务器上的目录并按计划通过电子邮件发送?

听说最近有多个知名网站创建者因为服务器硬件故障而遭受损失,所以我想在我的网站上实施备份策略。

我可以使用 cPanel,但是没有工具可以安排备份并通过电子邮件将其发送给我。有“crontab”工具,但是我不是经验丰富的 Unix 用户,所以不知道如何使用它。

我希望能够做的是创建我的整个主目录的备份,同时压缩它,然后发送一封电子邮件通知我这样的备份已完成,我可以下载和存档。

请问有人能给我提供一些关于我该如何做这样的事情的指点吗?

干杯,伊恩。

答案1

首先您需要学习如何使用命令;tar以及mail基本的 shell 脚本。

Shell 脚本

以下是一个非常简单但粗略的例子,说明如何做到这一点:

#! /bin/sh

# The following command creates a GZIP'd version of your folder. -c = create
# -z = use gzip, -f = file name of backup file
# You can use j instead of z to use bzip2. It's slightly slower but compresses
# more. Beware that images, videos and such do not compress well.
cd /PATH/NOT/IN/HOME/FOLDER; tar czf backup.tgz /PATH/TO/HOME/FOLDER

# If you only have access to your home folder you can modify the command to
# look like so, regular expressions are your friend here.
tar czf backup.tgz FOLDER1 FOLDER2 FILE3

# The mail program may be disabled and uses the local SMTP server so depending
# on your mail setup it may never even get to your inbox because it is flagged
# as unverified mail (Spam). For example, Gmail or a domain not hosted on that
# same server will almost most certainly not work. If this fails to work you
# can create a PHP or Python script that actually allows you to set the SMTP
# server. An alternative is to have this script echo some output and have cron
# send the output to you instead. It's dependent on your setup.
# -s Subject
# 
mail -s "Backup Done!" "[email protected]"

将脚本设置为可执行文件(chmod 755 nameOfScript.sh),并记下它在计算机上的保存位置

让 Crontab 运行 Shell 脚本

要从命令行设置 crontab,请输入crontab -e以编辑 crontab 文件。该文件的布局如下:

*     *   *   *    *  command to be executed
-     -    -    -    -
|     |     |     |     |
|     |     |     |     +----- day of week (0 - 6) (Sunday=0)
|     |     |     +------- month (1 - 12)
|     |     +--------- day of month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

图表来源:管理员的选择

在这种情况下,添加如下行:

33  0 * * *    /PATH/TO/HOME/FOLDER/nameOfScript.sh

将在每天 0:33 / 12:33 运行脚本。

如果您想了解更多信息,请查看tarmail和的手册页crontab。在处理任何形式的 UNIX 管理时,它们都是必不可少的。uuencode如果网站足够小,您甚至可以通过电子邮件将整个网站发送给自己。

相关内容