Python发送钉钉消息
使用程序给钉钉发消息,目前看起来只能通过群机器人的方式,先获取机器人的token,然后在程序里调用。
如果想给个人发送消息,就先拉个人建一个钉钉群,然后将别人踢掉,就剩自己了,就可以只有自己接收消息了。
如果用的Mac,先切换到root用户1
sudo su -
输入密码后,使用如下命令安装钉钉的Python依赖。1
pip install DingtalkChatbot
以下是使用python进行钉钉消息的代码示例:1
2
3
4
5
6
7
8
9from dingtalkchatbot.chatbot import DingtalkChatbot
webhook = 'https://oapi.dingtalk.com/robot/send?access_token=sdfs1c5711212e62ada4b25b88b17966d65'
xiaoding = DingtalkChatbot(webhook)
at_mobiles=['18655398189']
to = '0289806f09dc2baaaf098555790a492e11c5711212e62ada4b25b88b17966d65'
xiaoding.send_text(msg='我就是小丁,小丁就是我!', is_at_all=False,at_mobiles=at_mobiles)
使用shell的方式发送钉钉消息
钉钉提供了Webhook协议的自定义接入。使用命令行方式发送钉钉消息的代码示例如下:1
2
3
4
5
6
7
8curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' \
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": "欢迎访问 hohode.com"
}
}'
Impala报错信息
RPC client failed to connect: Couldn’t open transport for hadoop007:22000 (connect() failed: 拒绝连接)
可能是元数据信息的问题,在hue Impala上刷新依稀元数据信息就可以了。
AnalysisException: Failed to load metadata for table
https://stackoverflow.com/questions/16444340/cloudera-impala-queries-failing
Seems like a restart of the Impala service in Cloudera Manager fixed the issue.
Spark将数据写入mysql
使用shell,添加mysql jar1
/data/work/spark-2.2/bin/spark-shell --master yarn --executor-memory 5G --num-executors 5 --jars /jars/mysql-connector-java-5.1.35.jar
Spark向mysql写入数据的具体代码1
2
3
4
5
6
7
8
9
10
11val df = spark.read.json("/data/log/log2018070319_0001.snappy")
val prop = new java.util.Properties
prop.setProperty("driver", "com.mysql.jdbc.Driver")
prop.setProperty("user", "root")
prop.setProperty("password", "123456")
//jdbc mysql url - destination database is named "data"
val url = "jdbc:mysql://hohode.com:13306/sp"
//destination database table
val table = "sample_test"
//write data from spark dataframe to database
df.limit(10).write.mode("append").jdbc(url, table, prop)
Git比较两个分支的文件的差异
Git diff branch1 branch2 –stat //显示出所有有差异的文件列表
Git diff branch1 branch2 文件名(带路径) //显示指定文件的详细差异
Git diff branch1 branch2 //显示出所有有差异的文件的详细差异
Hexo如何为侧边widgets加上微信公众号图片
这篇文章中,我们来在 landscape 主题的侧边栏中添加微信公众号的二维码。
1 找到 themes/landscape 下的配置文件 _config.yml,添加 weixin 变量配置为二维码地址。
1 | # 配置关注微信公众号 |
2 在 themes/landscape/layout/_widget 目录下新建 weixin.ejs 文件,添加如下代码
1 | <% if (theme.weixin){ %> |
这里根据是否存在1中的微信二维码链接来控制这个模块的显示。可以根据实际需要设置样式。
3 修改 themes/landscape/_config.yml , 在 widgets 添加 weixin。
1 | widgets: |
总结:
本节中通过将微信公众账号的二维码作为一个组件( weixin.ejs ),利用 hueman 主题已有的侧边栏配置,非常方便的实现了微信公众号二维码的添加。
使用Spark操作MongoDB的数据
Spark Connector Scala Guide
https://docs.mongodb.com/spark-connector/current/scala-api/
Spark与mongodb整合完整版本
https://cloud.tencent.com/developer/article/1032526
MongoDB中的日期查询命令的记录:大于、小于、等于、范围内、(mongoVUE 操作记录)
https://blog.csdn.net/qq_27093465/article/details/53647930
Linux通过shell脚本在本地执行远程机器命令
Linux通过shell脚本在本地执行远程机器命令
1 |
|
Python日期的加减
https://segmentfault.com/q/1010000012025203
对于天,小时,分钟和秒的加减使用timedelta就可以做到1
2from datetime import datetime,timedelta
yesterday = datetime.now() + timedelta(days=-1,hours=-1,minutes=-1,seconds=-1)
但是对于月的加减就需要用到下边的方式1
2from dateutil.relativedelta import relativedelta
last_month = datetime.now() + relativedelta(months=-1)
通过Linux脚本将日志文件定时备份
脚本如下,将如下代码命名为roll_log.sh1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26source_file=$1
keep_days=5
if [ -n "$2" ] ;then
keep_days=$2
fi
log_dir=`dirname $source_file`
cd `dirname "$0"`
pwd
d=$(date "+%Y%m%d%H%M%S" -d '-1 hour')
filename=${source_file}_${d}.log
echo $filename
# file size should bigger than 1M
size=`ls -l $source_file | awk '{print $5}'`
if [ $size -gt 1048576 ]; then
echo "size is bigger than 1048576"
cp -f $source_file $filename
else
echo "size is less than 1048576"
fi
echo a >$source_file
d1=$(date "+%Y%m%d" -d "-${keep_days} day")
oldfile=${log_dir}/*${d1}*.log
echo $oldfile
rm -f $oldfile
将roll.log放到/root/目录下,然后通过crontab -e将其加入定时任务1
* * * * * sh /root/roll_log.sh /path/to/filename.log 1
roll_log.sh接收两个参数1.文件名,2.天数,即日志保留多长时间