Linux作业
题目:一个小的备份程序,每天晚上10点激活,在用户默认工作路径下找今天被修改的文件,然后打包。
解决办法:(自己创建一个目录,在该目录下找被修改的文件)
-
创建目录mkdir, 创建文件 touch
mkdir work1 //创建目录work1
touch test1 //在work1目录下创建文件test1 test2 test3
-
编辑文件 vi 指令
在work1目录下 编辑创建的文件vi test1 //进入编辑页面 按键a 进入 编辑
随便输入内容
保存方法: 按键 Esc + 按键 : +按键 wq -
查找文件(是否被修改)
work1是建在桌面的文件,所以在桌面使用查找指令find work1 -mtime -1 //改指令查找出一天内修改过的文件
-
打包文件(打包的文件我使用的是tar指令)
压缩指令tar -zcvf 压缩包名.tar.gz 源文件
顺便写一下解压指令
tar -zxvf 压缩包名.tar.gz
-
xargs 将查找和打包联系在一起的指令,是传递参数的过滤器。
find work1 -mtime -1 | xargs tar -zcvf homework.tar.gz //将查找的文件压缩打包,压缩文件名是homework.tar.gz
-
mail 发送邮件指令 ,将打包压缩的文件发送给目标邮箱,这里需要使用uuencode指令,需要安装sharutils ,安装指令为
sudo apt-get install sharutils
uuencode homework.tar.gz | mail -s mailname youxiang.com
youxianng.com 是你发送的邮箱,比如123456789@qq.com
-
定时器 crontab 指令
每天晚上十点激活的指令为 00 22 * * * /bin/sh test.sh
激活后的操作指令保存在test.sh文件中。crontab -e //激活一个定时器
激活后编辑文件和vi指令一样,将 00 22 * * * /bin/sh test.sh 写入保存。
-
test.sh 脚本文件的编辑
首先创建test.sh文件vi test.sh
然后将激活后要执行的指令写进去
find work1 -mtime -1 | xargs tar -zcvf homework.tar.gz
uuencode homework.tar.gz | mail -s homework1 12345678@qq.com
rm -f homework.tar.gz
//删除打包文件
然后需要给test.sh文件增加权限,指令为chmod + x test.sh //在test.sh所在的目录下
OK,问题解决。