简化日常工作系列之一 ---- 自动新建每日记录
人越大越要学会偷懒,日常的工作中总有一些可以被shell或者程序代替的。让我们从一些机械,常规的工作里解脱出双手,快乐的玩耍。我的思路是:
使用bash或python实现自动化,能用bash的,不用python。(公司或个人机子未必有python)
假设使用bash.
我能做的简化日常工作的例子。
1.每日新建任务 和 总结昨日工作学习情况的记录文件。
2.去跑一遍采集小说的脚本任务
3.封装git操作,比如提交推远程等。
4.解析文本变为某种特定类型的文本,方便开发(api)
用python或其他命令。
5.自动生成特定模板文件(php,ruby,python...等文件)
6.常规工具,比如格式化时间,ip查询等。
7.过滤某文件中内容,然后定时发送邮件。
8.一些数据分析的程序,每天某时间段执行获取分析结果。(比如股票,博客访问或其他数据)
我先做第一个:每日新建任务 和 总结昨日工作学习情况的记录文件。
由于我本机是windows(公司的),我bash和python都写一下。
bash的实现:
function createDailyFolder() { path=/data/dailyFiles date=$(date "+%Y-%m-%d") if ! [ -d "${path}/${date}" ] then mkdir -p $path/$date fi } function createDailyFiles() { path=/data/dailyFiles date=$(date "+%Y-%m-%d") if ! [ -f "${path}/${date}/${date}-work.txt" ] then cd $path/$date echo "today task is:" >> $date-work.txt echo "create $date of work file\r\n" fi if ! [ -f "${path}/${date}/${date}-reading.txt" ] then cd $path/$date echo "today reading is:" >> $date-reading.txt echo "create $date reading file" fi } pathname=/data/dailyFiles; rm -rf $pathname if ! [ -d "$pathname" ] then mkdir -p $pathname echo "create path :$pathname\r\n" fi createDailyFolder createDailyFiles
在写定时任务时候,注意如果是在docker中,需要将/etc/pam.d/crond里面所有的required改为sufficient
同时要注意如果没生效,而手动执行生效,要考虑代码和脚本shell中或定时任务里面是不是写的路径和执行命令不是绝对路径,比如python2.7 xx.py命令,
要写成 /usr/local/bin/python2.7 /data/shells/creates.py.
升级 python 的shell:
yum -y update yum groupinstall -y 'development tools' yum install -y zlib-devel bzip2-devel openssl-devel xz-libs wget wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz tar xf Python-2.7.10.tgz cd Python-2.7.10 ./configure --prefix=/usr/local make && make install ln -s /usr/local/bin/python2.7 /usr/bin/python
关于python的实现
# 检验给出的路径是否是一个文件:os.path.isfile()
# 检验给出的路径是否是一个目录:os.path.isdir()
import os import datetime date = datetime.datetime.now().strftime("%Y-%m-%d") path = '/data/dailyFiles' dailyPath = path + '/' + date if os.path.isdir(path) == False: os.mkdir(path) print("create dailyFiles folder success!") if os.path.isdir(dailyPath) == False: os.mkdir(dailyPath) print("create %s folder success!" %date) for filename in ['work', 'reading', 'novel', 'tech_arti']: if os.path.isfile( dailyPath + '/' + filename + '.txt') == False: with open(dailyPath + '/' + filename + '.txt','w') as f: f.write('today %s is:\n' %filename) print("create " + date + " of %s file success!" % filename)