ubuntu服务器自动自动编译脚本并且每天定时自动执行
2016-05-11 15:59
204 查看
ubuntu自动编译脚本,写自动编译,拷贝文件的脚本比较容易,重点在与如何每天定时定点的自动执行这个脚本,来完成脚本中的自动编译程序。
我简单的自动编译脚本部分内容如下:
方法一:使用crontab (ubuntu中自带的自动执行的工具)
crontab -e 来添加新的需要执行的命令
crontab -l 可以用来查看你这个用户名添加的自动执行命令
crontab -r 可以用来删除你这个用户名添加的自动执行命令
30 21 * * * keven /home/zone5/autocompile.sh >> /home/zone5/tmp/$(date +%Y%m%d).log
每天21:30分,以keven这个用户的权限执行/home/zone5/autocompile.sh这个脚本,并且把log保存在tmp文件夹中,文件名保存为年与日(eg:20160505.log)的形式,方便记录。
方法二:crontab的另一种用法
vim /etc/crontab
查看这个文件,你可以发现服务器自己会有很多每天都会执行的文件,需要每天执行,只需要把你需要运行的脚本拷贝到 /etc/cron.daily/这个文件夹中,系统就会自己每天执行这个文件夹中的所有脚本。
我是比较悲催的,这两种方法都用不了,所以不得不使用最笨的方法了,反正服务器每天都有在运行,所以自己写了一个计时的脚本来执行自己的自动编译脚本。
方法三:自己写的计时脚本来执行自己的自动编译脚本
其实计时脚本只需要不停的检测时间是否与你想要编译的时间点相等即可,计时脚本内容如下:
我这里设置的是当时间为 030000(凌晨三点)时,就会执行下面的脚本,别切保存编译的log
我简单的自动编译脚本部分内容如下:
SOURCE=/home/zone5/autocompile/dev_Q3_cardv_mc SAVE_FILE_EVERYDAY=/home/zone5/AutoCompileImg/EveryDay/ SAVE_FILE_EVETYWEEK=/home/zone5/AutoCompileImg/EveryWEEK/ OUTPUT_IMAGE=./output/IMAGES/ FILE_NAME=$(date +%Y%m%d) cd $SOURCE repo sync -c && PROJECT=botai source sportdv/devices/apollo/$PROJECT/BoardConfig.sh && ./buildCarDV && mkdir -p $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf $OUTPUT_IMAGE/ramdisk0.img $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf $OUTPUT_IMAGE/ramdisk.img $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf $OUTPUT_IMAGE/system.img $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf $OUTPUT_IMAGE/uboot_lite.isi $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf $OUTPUT_IMAGE/uImage $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf sportdv/devices/apollo/$PROJECT/items.itm $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT echo "------------ Project $PROJECT END ------------" PROJECT=MSD_GP000 source sportdv/devices/apollo/$PROJECT/BoardConfig.sh && ./buildCarDV && mkdir -p $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf $OUTPUT_IMAGE/ramdisk0.img $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf $OUTPUT_IMAGE/ramdisk.img $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf $OUTPUT_IMAGE/system.img $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf $OUTPUT_IMAGE/uboot_lite.isi $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf $OUTPUT_IMAGE/uImage $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT && cp -rf sportdv/devices/apollo/$PROJECT/items.itm $SAVE_FILE_EVERYDAY/$FILE_NAME/$PROJECT echo "------------ Project $PROJECT END ------------"重点,在服务器上每天自动执行这个脚本来完成任务
方法一:使用crontab (ubuntu中自带的自动执行的工具)
crontab -e 来添加新的需要执行的命令
crontab -l 可以用来查看你这个用户名添加的自动执行命令
crontab -r 可以用来删除你这个用户名添加的自动执行命令
30 21 * * * keven /home/zone5/autocompile.sh >> /home/zone5/tmp/$(date +%Y%m%d).log
每天21:30分,以keven这个用户的权限执行/home/zone5/autocompile.sh这个脚本,并且把log保存在tmp文件夹中,文件名保存为年与日(eg:20160505.log)的形式,方便记录。
方法二:crontab的另一种用法
vim /etc/crontab
查看这个文件,你可以发现服务器自己会有很多每天都会执行的文件,需要每天执行,只需要把你需要运行的脚本拷贝到 /etc/cron.daily/这个文件夹中,系统就会自己每天执行这个文件夹中的所有脚本。
我是比较悲催的,这两种方法都用不了,所以不得不使用最笨的方法了,反正服务器每天都有在运行,所以自己写了一个计时的脚本来执行自己的自动编译脚本。
方法三:自己写的计时脚本来执行自己的自动编译脚本
其实计时脚本只需要不停的检测时间是否与你想要编译的时间点相等即可,计时脚本内容如下:
我这里设置的是当时间为 030000(凌晨三点)时,就会执行下面的脚本,别切保存编译的log
while [ 1 ] do sleep 1s if [ "$(date +%H%M%S)" = "030000" ] then /home/zone5/autocompile/autocompile.sh >> /home/zone5/AutoCompileImg/tmp/$(date +%Y%m%d).log fi done好吧,虽然不够专业,但是,就当做是给自己记录的笔记吧!
相关文章推荐
- Linux系统性能统计工具Sar和实时系统性能监控脚本
- 三十五 序列化
- Java中的阻塞和非阻塞IO包各自的优劣思考(经典)
- 【Android测试】【第十五节】Instrumentation——官方译文
- Oracle pipe
- merge into语句
- Shell 简易教程
- linux系统swappiness参数在内存与交换分区间优化
- LCD常用接口原理概述
- get请求中文乱码
- 222. Count Complete Tree Nodes
- 磐优—— 抬走,下一个!
- 如何定位和解决Andorid的内存溢出问题(大总结)
- 推荐:一个介绍音视频格式资料的博客
- iOS 开发工具网页下载
- angualrjs学习总结二(作用域、控制器、过滤器)
- Java实现快速排序
- 网络编程知识(11)--DNS
- Web报表工具JS开发之日期校验
- rapidxml标识符 memory