写个定时任务更新svn
2015-11-03 14:39
232 查看
最近学了点shell编程,寻思锻炼下写一个。平常你学习或者看别人讲,自己不练习肯定不行,基本上一动手准出错哈哈。等自己去实践,才会知道哪里有问题,哪里容易出错,哪里要注意什么的。
因为我们每个人有自己linux环境的开发机。每天早晨来工作,都要更新下svn的代码。这个步骤已经比较习惯了,也没想过什么。今天比较悠闲,又加上入门点shell,就寻思为啥不写个脚本给我跑呢,我还手动更新啥啊,shell脚本本身不就是用来给人方便处理的么,还能锻炼下定时任务的知识哈哈...由于都是学到皮毛,小实践也比较简单。
于是就写了个这个:
#crontab -uroot -e
脚本写到了/data/www/下
#vi /data/www/svn.update
#chmod 755 /data/www/svn.update
写这么个简单的东西,自己也是查了又调试了有一会哈哈。主要自己的shell编程经验知识少的可怜~
shell这块入门可以参考下这个文章:http://www.imooc.com/article/1788
定时任务这块,也参考了下这篇文章:http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html
sed这块参考了这个文章:http://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html
顺便推荐一下,awk学习可以参考下这个文章:http://coolshell.cn/articles/9070.html
配置邮件发送,可以参考这个文章:http://www.cnblogs.com/firstForEver/p/4943221.html
就说一下哪个地方需要注意啥的。
1. 每天6点,记得分钟位置的地方是0 ,而不是 * ;如果是*的话就是每一分钟都执行;
2. 开始本来想直接写到crontab文件里,但是定时任务环境不支持中文(发到邮件里是乱码),这才另外写到了shell脚本文件里;export LANG...
3. shell里把命令的返回结果取出来是利用反引号,比如这个`date`。这样才能把当前时间取出来。并且mail -s 后边这个邮件主题参数,当里边内嵌`date`这个执行后的结果时,这个参数需要使用双引号,单引号不会取出date的结果。
-------------
以下是原来写的。。
因为我要知道是不是更新过代码,所以把更新日志写到了每天开机就能看到的地方,就是欢迎信息的文件/etc/motd里。追加一个文件,利用重定向>>,记住追加是两个大于号,一个就是覆盖了,因为我的欢迎信息本身就有了21行的东西,我不想给覆盖掉。
这里我很可以始终显示一行最新的svn更新日志,但是我没想这么做。我希望积攒一个礼拜的再清除...原来没怎么用过sed处理过啥文件,但以前有次面试有人问过我,我就回头入门了一下awk和sed...但是这块 -i 参数这倒是郁闷了一会。。因为只有加了这个参数才是真正的改原文件,否则只是处理那个流。。
因为我们每个人有自己linux环境的开发机。每天早晨来工作,都要更新下svn的代码。这个步骤已经比较习惯了,也没想过什么。今天比较悠闲,又加上入门点shell,就寻思为啥不写个脚本给我跑呢,我还手动更新啥啊,shell脚本本身不就是用来给人方便处理的么,还能锻炼下定时任务的知识哈哈...由于都是学到皮毛,小实践也比较简单。
于是就写了个这个:
#crontab -uroot -e
脚本写到了/data/www/下
#vi /data/www/svn.update
#chmod 755 /data/www/svn.update
写这么个简单的东西,自己也是查了又调试了有一会哈哈。主要自己的shell编程经验知识少的可怜~
shell这块入门可以参考下这个文章:http://www.imooc.com/article/1788
定时任务这块,也参考了下这篇文章:http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html
sed这块参考了这个文章:http://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html
顺便推荐一下,awk学习可以参考下这个文章:http://coolshell.cn/articles/9070.html
配置邮件发送,可以参考这个文章:http://www.cnblogs.com/firstForEver/p/4943221.html
就说一下哪个地方需要注意啥的。
1. 每天6点,记得分钟位置的地方是0 ,而不是 * ;如果是*的话就是每一分钟都执行;
2. 开始本来想直接写到crontab文件里,但是定时任务环境不支持中文(发到邮件里是乱码),这才另外写到了shell脚本文件里;export LANG...
3. shell里把命令的返回结果取出来是利用反引号,比如这个`date`。这样才能把当前时间取出来。并且mail -s 后边这个邮件主题参数,当里边内嵌`date`这个执行后的结果时,这个参数需要使用双引号,单引号不会取出date的结果。
-------------
以下是原来写的。。
因为我要知道是不是更新过代码,所以把更新日志写到了每天开机就能看到的地方,就是欢迎信息的文件/etc/motd里。追加一个文件,利用重定向>>,记住追加是两个大于号,一个就是覆盖了,因为我的欢迎信息本身就有了21行的东西,我不想给覆盖掉。
这里我很可以始终显示一行最新的svn更新日志,但是我没想这么做。我希望积攒一个礼拜的再清除...原来没怎么用过sed处理过啥文件,但以前有次面试有人问过我,我就回头入门了一下awk和sed...但是这块 -i 参数这倒是郁闷了一会。。因为只有加了这个参数才是真正的改原文件,否则只是处理那个流。。
相关文章推荐
- Ubuntu下进入Android adb/fastboot模式
- Android消息处理机制
- request.getRequestURL() getRequestURI区别
- 用U盘安卓esxi虚拟机出现 error loading /s.v00 错误解决办法
- 读书笔记-原码, 反码, 补码 详解
- UIButton (常用点击按钮)
- 你不知道的JavaScript--Item26 异步的脚本加载
- Toolbar显示菜单问题
- 1.5 使用Sqoop从HDFS导出数据到MySQL
- C#开发的进化史(从简单的数据类型开始)
- 乌班图中的ssh服务
- 你不知道的JavaScript--Item26 异步的脚本加载
- c#基础5
- android 动态添加ImageView 设置setPadding不起作用问
- java生成随机数
- Java总结2
- jquery操作DOM 元素(3)
- iOS runtime攻击-cycript
- 1232 - SKYLINE
- LeetCode——Add Two Numbers