实习要求:上班和下班必须要签到。我这么懒,实习是肯定要实习的,但是签到嘛,还是要想办法摸摸鱼的啦!
树莓派是一款信用卡大小的超小型电脑
那么我们有个大胆的想法,能不能用树莓派实现打卡的心愿呢。好歹也是个计算机,对吧。
购买清单
就我实际的使用而言,必需品:一块主板,网线,3个散热片,外壳,电源,16g sd卡,读卡器。
组装部分 https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up/4
大家拿着自己的板子(树莓派4)对照着图找就好了
我这里推荐大家装 Raspbian Buster with desktop 对于官网NOOBS系统我尝试过了,对于我们没有买显示器的而言,不友好,需要额外的操作。
系统下载完成,就需要烧录 这里需要先SD卡格式化,使用 SD Card Formatter(支持windows和mac)
烧录系统到sd卡
这里使用win32Diskimager
链接:https://pan.baidu.com/s/1loQPydCsw9Cam8Us2CbpxQ
提取码:wiis
复制这段内容后打开百度网盘手机App,操作更方便哦
烧录完成,组装完成。设置ssh连接,最新的系统默认是未开启ssh,这里我们需要设置开启ssh。将SD卡连接到电脑上并打开,直接新建“SSH”文件(无后缀)即可
算了,接下来还有网线什么的连接。写起来太长,都还没到主菜。详细的设置大家可以参考
https://blog.csdn.net/weixin_43895902/article/details/100919851#_142
就我出现的几个问题给大家说一下。
树莓派直接放在公司里,有电有网,直接就能定位。除了让树莓派自动打卡,我还想让树莓派打卡完成之后给我发一封邮件。一步一步来
配置msmtp和mutt自动发送邮件
mutt: 是一个Linux下的邮件程序,Mutt 更像一个文件管理器,只不过它管理的是email
msmtp: 是Linux下一个非常简单易用的smtp客户端
#安装
sudo apt install msmtp mutt
# 配置msmtprc
cd ~ #进入用户根目录
touch msmtp.log #创建日志文件
chmod 600 msmtp.log #查看日志
touch .msmtprc #创建.msmtprc文件
chmod 600 .msmtprc #msmtprc权限
sudo nano .msmtprc #添加如下内容
account default
host smtp.163.com #需要开启163邮箱的SMTP服务
from [email protected] #你的邮箱地址
auth plain
user [email protected] #你的邮箱地址
password your_password #是SMTP授权码
logfile /root/msmtp.log # 在发送邮件之后程序会把发送日志写到这个路径的文件里
#配置mutt
cd ~
touch .muttrc
sudo nano .muttrc #添加以下内容,默认填就好了
set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="Alpha" #收件人名字
set from="[email protected]"
set editor="vim"
#测试
测试配置文件:msmtp -P
测试smtp服务器:msmtp -S
echo "你好,我是测试用的,谢谢" | mutt -s "你好啊" [email protected]
这个要单独列出来一下。因为一个脚本的核心还是自动化,方便实用。
#开机自启动
sudo nano /etc/rc.local
sudo bash /home/pi/sendmail.sh #我的sendmail.sh是开机发送自己的ip,文末会贴上
#定时任务
#cron进行定时器
crontab -e #编译定时任务
// 从左往右: 分 时 日 月 星期
# m h dom mon dow command
30 5 10 3 * touch /tmp/test.log // 表示每年3月10号5点30分,执行touch /tmp/test.log
10 18 * * * echo "Hello World" > /home/pi/log // 每天的18点10分执行echo "Hello World" > /home/pi/log
我使用的是eteams打卡,它不支持pc端的签到,所以我只能使用模拟器代理去抓包。
一些自己使用的脚本:
#!/bin/bash
# check network availability
# get the IP address of eth0, e.g. "192.168.16.5"
ETH0_IP_ADDR=`/sbin/ifconfig eth0 | sed -n "2,2p" | awk '{print substr($2,1)}'`
# send the Email
echo "Current time: `date '+%F %T'`. Enjoy it" | mutt -s "IP Address of Raspberry Pi: $ETH0_IP_ADDR" [email protected]