linux自动执行服务器,ubuntu服务器自动自动编译脚本并且每天定时自动执行

ubuntu自动编译脚本,写自动编译,拷贝文件的脚本比较容易,重点在与如何每天定时定点的自动执行这个脚本,来完成脚本中的自动编译程序。

我简单的自动编译脚本部分内容如下:

3ec92c79ccbfa29edfef545a5b65a9d6.png

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:20160512.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

好吧,虽然不够专业,但是,就当做是给自己记录的笔记吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值