人越大越要学会偷懒,日常的工作中总有一些可以被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/dailyFilesdate=$(date "+%Y-%m-%d")if ! [ -d "${path}/${date}" ]then mkdir -p $path/$datefi}function createDailyFiles() {path=/data/dailyFilesdate=$(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 $pathnameif ! [ -d "$pathname" ] then mkdir -p $pathname echo "create path :$pathname\r\n"ficreateDailyFolder 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 updateyum groupinstall -y 'development tools'yum install -y zlib-devel bzip2-devel openssl-devel xz-libs wgetwget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgztar xf Python-2.7.10.tgzcd Python-2.7.10./configure --prefix=/usr/localmake && make installln -s /usr/local/bin/python2.7 /usr/bin/python
import osimport datetimedate = datetime.datetime.now().strftime("%Y-%m-%d")path = '/data/dailyFiles'dailyPath = path + '/' + dateif 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)