我的ubuntu之定时任务自动提交笔记git仓库

需求

  • 记录文档的时候虽然文件夹初始化为git仓库,但是总是不记得去add commit

方案

  • 编写shell脚本结合crontab 定时任务实现定时执行这些操作
  • 将需要关注的git仓库建立软连接统一在一个目录下管理
  • 脚本
#!/bin/bash
nowDate=`date +%F" "%T`
message="自动同步 ${nowDate}"
echo 开启【$(date +%F)】同步
echo "获取文件夹列表......"
#切换到统一管理的目录
cd /home/user/.timetask/git/
pwd=`pwd`
for folder in `ls ${pwd}`
do
    if [ -d $folder ]
    then
        project=${pwd}"/"${folder}
        echo 开始处理$project
        cd $project
        echo "开始自动同步提交git仓库......"

        git add .
        git commit -m "$message"
        echo ----------------------------------------------------------
        # 返回上一层目录不然无法识别循环中的文件名
        cd ..
    fi
done

  • 定时任务
0 17 * * 5 /home/user/.timetask/git/GitCommitAuto.sh >>/home/user/.timetask/gitlog.log 

改进

  • 脚本的执行结果日志记录可以优化一下(单独记录错误日志)
  • 后期可以再写个push 脚本

shell编程

  • 当涉及文件夹遍历的时候,相应的文件名是相对路径依赖当前目录上下文,一旦循环中执行了切换目录的草,会导致后续循环的文件名无法识别
  • $()和`` 类似都可以用来执行命令获取输出
  • shell 是解释型的语言 所以空格在代码中是重要的分隔符,注意赋值(=)的时候两边不要有空格
  • shell中 常见的是行分隔和空格分隔

你可能感兴趣的:(我的ubuntu,git,ubuntu,github)