![如何压缩 Unix Web 服务器上的目录并按计划通过电子邮件发送?](https://linux22.com/image/1224782/%E5%A6%82%E4%BD%95%E5%8E%8B%E7%BC%A9%20Unix%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E7%9B%AE%E5%BD%95%E5%B9%B6%E6%8C%89%E8%AE%A1%E5%88%92%E9%80%9A%E8%BF%87%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E5%8F%91%E9%80%81%EF%BC%9F.png)
听说最近有多个知名网站创建者因为服务器硬件故障而遭受损失,所以我想在我的网站上实施备份策略。
我可以使用 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 运行脚本。
如果您想了解更多信息,请查看tar
、mail
和的手册页crontab
。在处理任何形式的 UNIX 管理时,它们都是必不可少的。uuencode
如果网站足够小,您甚至可以通过电子邮件将整个网站发送给自己。