我的人生不能再这样了!
想半天也不知道用什么标题比较好!通俗的讲就是在Linux服务器上重复的有周期性的做某些事情.
导火索:oracle备份文件没日没夜的增大,知道占满整个空间,如果不删除旧的,新的就生成不了.
关键词:crontab
什么都不知道的情况下当然不能拿服务器备份文件做实验,首先解决周期循环新建文件.
什么命令新建文件→touch
生成什么文件名→以当前时间命名例如201304271958→$(date -d "today" +"%Y%m%d%H%M")
接下来试试下面的命令
touch $(date -d "today" +"%Y%m%d%H%M").txt
再ls一下,可以发现会有一个新建的txt文件,名称是当前时间.
接下来我们要做到效果是每分钟生成一个txt文件.
编写shell脚本(生成的文件在/opt目录下下)
#vi jiaoben.sh
touch /opt/$(date -d "today" +"%Y%m%d_%H%M").txt;
给jiaoben.sh添加可执行权限
#chmod +x jiaoben.sh
可以试试是否有效果:
#./jiaoben.sh
如果ls后发现目录下有对应时间的txt文件生成则说明成功.
最后是周期性任务的配置,利用cron服务,具体详细可以谷歌维基一下
修改指定文件(最后一行添加),假设jiaoben.sh在/opt目录下
#vi /etc/crontab
*/1 * * * * root /opt/jiaoben.sh
以上配置表明每一分钟,任何小时,任何天,任何月,无论星期几,root用户执行脚本jiaoben.sh
具体说明猛击这里
保存后,就应该有效果了,每隔一分钟都会在/opt目录下新建生成一个txt文件.
至此目的已达到.
附上有趣的例子.(始终/opt下面都只存在一个txt文件)
#vi jiaoben.sh
touch /opt/$(date -d "today" +"%Y%m%d_%H%M").txt;
/usr/bin/find /opt/*.txt -cmin +1 -exec rm {} \;
该命令是每分钟生成一个txt文件,删除一分钟之前的txt文件,注意我是在Ubuntu下实现的,貌似redhat下面是两分钟之前,具体未深究.
关于find命令可以自己去查询相关资料.
至此,实验结束,我已解决我的问题.