Linux上定时打包备份文件夹 - Go语言中文社区

Linux上定时打包备份文件夹


目录

一、 编写脚本

1.创建脚本

2.写入命令

3.执行脚本文件

二、 设置定时执行本脚本。

1. 安装crond

2. 修改crontab内容

3. 重新启动crond服务

补充说明:


一、编写脚本

编写一个脚本文件,使脚本可以执行备份命令。

例如,将文件目录 /home/backups/balalala 备份到/home目录下,并压缩。

1.创建脚本

命令格式: touch 路径/文件名.sh

例如:

输入命令:

touch /home/backup.sh

2.写入命令

首先进入脚本:vi命令

vi /home/backup.sh

在脚本内写入:

#!/bin/sh
#创建一个临时文件(要保存备份的路径)
mkdir /home/beifen

#数据存在backups目录下,备份到beifen目录下,所以先将数据拷过来
cp -r /home/backups/balalala  /home/beifen

#将数据所在文件夹beifen打包
tar -zcPvf /home/backup$(date +%Y%m%d).tar.gz /home/beifen

#删除临时文件内容
rm -rf /home/beifen/

#删除改文件夹下超过30天的文件
find ./ -mtime +30 -name "*.tar.gz" -exec rm -rf {} ;

3.执行脚本文件

直接手动执行脚本文件。

命令格式:sh 路径/文件名.sh

例如:

sh /home/backup.sh

 

二、 设置定时执行本脚本。

例如:设置脚本每7天执行一次。

1. 安装crond

如果没有安装crond服务就先装上服务。

$ yum install crontabs

检查服务状态:

service crond status

2. 修改crontab内容

输入命令:crontab –e

进入后继续输入命令:

0 0 */7 * * /home/backup.sh

设置为每7天执行一次脚本文件

然后,保存退出:wq

sh脚本前面五个字段分别表示分钟(0-59)、小时(0-23)、日(1-31)、月(0-12)、星期几(0-6)后面的为脚本所在目录

 

crontab特殊的符号说明:

  "*"  代表所有的取值范围内的数字。特别要注意哦!

  "/"  代表每的意思,如"*/5"表示每5个单位

  "-"  代表从某个数字到某个数字

  ","  分散的数字

例如:

30 21 * * *          表示每晚的21:30

45 4 1,10,22 * *       表示每月1、10、22日的4 : 45

3. 重新启动crond服务

输入命令:

service crond restart

至此配置完成!

 

补充说明:

解压备份的压缩包命令

tar -xzvPf robin.tar.gz -C/

首先应该明确:linux/unix系统中,使用tar对文件打包时,一般不建议使用绝对路径。

通常是在两台环境相似的机器上进行同步复制的时候,才有需要使用绝对路径进行打包。使用绝对路径打包时如果不指定相应的参数,

tar会产生一句警告信息:”tar: Removing leading `/’ from member names”,并且实际产生的压缩包会将绝对路径转化为相对路径。

比如:

root@queen ~ # tar -czvf robin.tar.gz /home/robin
tar: Removing leading `/' from member names
/home/robin/
/home/robin/file1
/home/robin/file2
/home/robin/file3
root@queen ~ # tar -tzvf robin.tar.gz
drwxr-xr-x robin/root        0 2009-11-10 18:51:31 home/robin/
-rw-r--r-- robin/root        0 2009-11-10 18:51:28 home/robin/file1
-rw-r--r-- robin/root        0 2009-11-10 18:51:30 home/robin/file2
-rw-r--r-- robin/root        0 2009-11-10 18:51:31 home/robin/file3
root@queen ~ #

这样的一个压缩包,如果我们再去解开,就会当前目录(也即此例中的“~”)下再新建出“./home/robin/” 两级目录。

对于这样的压缩包,解压方法是使用参数 “-C”指解压的目录为根目录(“/”):tar -xzvf robin.tar.gz -C /

更为可靠的方法是在打包和解开的时候都使用参数 -P:

root@queen ~ # tar -czvPf robin.tar.gz /home/robin/
/home/robin/
/home/robin/file1
/home/robin/file2
/home/robin/file3
root@queen ~ # tar tzvf robin.tar.gz
drwxr-xr-x robin/root        0 2009-11-10 18:51:31 /home/robin/
-rw-r--r-- robin/root        0 2009-11-10 18:51:28 /home/robin/file1
-rw-r--r-- robin/root        0 2009-11-10 18:51:30 /home/robin/file2
-rw-r--r-- robin/root        0 2009-11-10 18:51:31 /home/robin/file3
root@queen ~ # tar -xzvPf robin.tar.gz
/home/robin/
/home/robin/file1
/home/robin/file2
/home/robin/file3
root@queen ~ #

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_35224503/article/details/98782854
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-24 22:08:49
  • 阅读 ( 1191 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢