如何进行每月系统备份

如何进行每月系统备份

我想在 Ubuntu 14.04 LTS - Server Ed. 上创建每月自动备份,使用以下命令:

$ tar -cvpz --exclude=/bckupftp --exclude=/ser --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys / | split -d -b 750m - /bckupftp/backup20160422-041400.tar.gz

我在备份文件名中添加了日期和时间。如果可以自动将其设置为实际备份日期/时间就太好了。对于cronjob2016 年 5 月 1 日凌晨 1 点运行的一组文件,备份文件名将是:/bckupftp/backup20160501-010000.tar.gz

有人可以帮我设置cronjob这个命令吗? 谢谢,凯文

答案1

要为当前非 root 用户设置 cronjob,请在终端中执行以下操作:

$ crontab -e

上述命令将打开您(非root)用户的crontab默认编辑器。

或者,对 root 执行此操作crontab,但使用 yr 存在(大概是非 root)用户环境参数(默认编辑器等):

$ sudo -i crontab -e

在 yr closed 中crontab输入一个新行:

0 01 01 * * /bin/tar -cvpz --exclude=/bckupftp --exclude=/ser --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys / | /usr/bin/split -d -b 750m - /bckupftp/backup$(/bin/date +\%Y\%m\%d-\%H\%M\%S).tar.gz

(我没有检查你的命令的有效性tar。)

注意:

  • crontab使用 24 小时制时钟,军事风格:15表示下午 3 点,03表示凌晨 3 点,等等。

  • 上述cron条目在每月第一天的 01:00 点运行。在终端中,输入:man crontab获取有关 crontab 格式的更多信息。

  • 在 中crontab,在 cmd 前面加上其完整路径是一个好习惯。要查找任何非内置 cmd 的完整路径,请在终端中执行$ which <cmd>。因此,tarcmd 变为/bin/tarsplit变为/usr/bin/split,等等。

  • 只要您保存新编辑的内容crontabcron作业就会立即生效。无需重新启动、注销并重新登录或重新启动任何服务。

  • 保存 yr 备份文件时,时间戳的格式为 YYYYMMDD-HHMMSS。如果您需要更精确的格式,请尝试%S%syrcrontab条目中替换。

  • 我确信(意思是“100% 有可能”)您可以在 AU、SE 以及其他论坛中找到上述所有内容的详细解释。请记住首页是你的朋友。

答案2

创建文件:/etc/cron.monthly/backups.sh 通过以下方式使其可执行:$ chmod +x /etc/cron.monthly/backups.sh

为了整理它,创建一个变量:

DATE=`date +%Y.%m.%d-%H.%M.%S`                   # eg. 2016.04.22-13.01.59

然后引用上面的命令: /bckupftp/backup${DATE}.tar.gz

它将生成类似如下的文件: /bckupftp/backup2016.04.22-13.01.59.tar.gz

请根据您的喜好和需要随意删除点。

相关内容