目录
一、编写脚本
编写一个脚本文件,使脚本可以执行备份命令。
例如,将文件目录 /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 ~ #