Uncategorized

Merlin梅林cfddns重启后自动更新失效

我是用koolshare软件中心的cfddns插件来实现动态域名的需求,用来连接家中设备。在配置页面设置了60分钟自动更新一次,在保存后通过日志检查自动更新命令允许正常,能够按照预设的周期看到如下Log: Jan 21 14:10:00 crond[546]: USER admin pid 1438 cmd /koolshare/scripts/cfddns_update.sh 可是当路由器重启后,cfddns定时更新并不能正确执行,看作者Github的issue,也有其他人遇到类似的问题,应该是插件开发中还有缺陷。于是我查了查cfddns是通过crontab将定时脚本记录在了/tmp/var/spool/cron/crontabs/admin中,而根据Merlin的帮助Wiki,这个位置是记录在RAM里的,重启就失效了,建议将脚本保存在jffs分区,并通过init-start脚本实现开机再次写入。所以对于我遇到的这个cfddns可以用这个办法解决,通过vi /jffs/scripts/init-start 创建一个新文本,填入以下内容,其意义是每次重启会自动同步一次,然后每隔1440分钟(一天)再自动同步一次。 #!/bin/sh /koolshare/scripts/cfddns_update.sh echo “*/1440 * * * * /koolshare/scripts/cfddns_update.sh #cfddns_update#” >> /tmp/var/spool/cron/crontabs/admin 之后将文件赋予执行权限: chmod a+rx /jffs/scripts/init-start 注意通过这样子设置的更新周期不会反向同步到cfddns网页设置的那个窗口中,实际定时任务间隔以上边脚本中数字为准。到此cfddns脚本自动更新任务就设置完成了,重启一下,试试吧!   Reference: https://github.com/RMerl/asuswrt-merlin.ng/wiki/Scheduled-tasks-(cron-jobs) https://bugxia.com/946.html https://github.com/geek5nan/koolshare-cfddns/issues/5      

Jenkins 发送验证邮件失败

最近在玩Jenkins想配置一个邮件提醒,在正确配置了SMTP服务器账号密码信息后,点击发送测试邮件死活发不出去,并报下边的错误。我检查了很多遍我的配置,并且从其他一个服务器拿过来一个在用的确认没错的配置以及账号尝试发送还是不成功。查了很多帖子,原来是这里发送邮件的账户,应该与上边填写的系统管理员账户(System Admin e-mail address)一致,修改后示例邮件发送成功。看来这个Jenkins坑还不少啊。 java.net.SocketException: Connection or outbound has closed at java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1297) at com.sun.mail.util.TraceOutputStream.write(TraceOutputStream.java:116) at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81) at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142) at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2429) Caused: jakarta.mail.MessagingException: Can’t send command to SMTP host;   nested exception is: java.net.SocketException: Connection or outbound has closed at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2431) at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2418) at com.sun.mail.smtp.SMTPTransport.close(SMTPTransport.java:1394) at jakarta.mail.Transport.send0(Transport.java:233) at jakarta.mail.Transport.send(Transport.java:100) at hudson.tasks.Mailer$DescriptorImpl.doSendTestMail(Mailer.java:714) at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710) at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:397) at …

Jenkins 发送验证邮件失败 Read More »

Jenkins设置系统语言

最近玩一玩Jenkins,在安装好默认的配置下,语言是中英文混杂,看着太别扭了,有些中文翻译也很别扭,我感觉还有可能有误导嫌疑,于是我想讲系统语言设置成英文,可是在配置页面找了好几遍竟然没找到,查了下原来是需要一个插件才能完成这个基本的功能: Locale: https://plugins.jenkins.io/locale/ 安装好后在系统设置页面找到Locale栏,Default Language输入en_US并且勾选“Ignore browser preference and force this language to all users” 即可将默认语言更改为英文。 这个locale用的是Linux格式,即xx_YY ,比如zh_CN。可以在Linux上运行locale -a查看所有可用的locale。   Reference: https://blog.csdn.net/nklinsirui/article/details/89576475

Linux SSH 更换登录端口

登录到服务器的,然后修改/etc/ssh/sshd_config 配置,添加新的一行: Port 123 后边按个数字就是自己设定的端口号。在这个文件中有一行注释掉的 #Port 22 也可以将#去掉,然后将数字换掉,意义一样。

CAN FD总线基础

学习笔记系列之CAN FD总线。 之前一篇笔记记录了CAN总线基础:https://blog.shuspieler.com/3649/ , 在这继续记录CAN FD的知识。 如果用一句话总结CAN FD和CAN的区别的话,就是为了加大数据吞吐率,在Payload使用了不同的传输频率,头部尾部保持不变,从而在相同的时间长度,传输了更多的数据,就像下图所示。 CAN FD协议需要新的控制器,而新的控制器是兼容老的CAN协议的,也就是说CAN FD控制器可以向下兼容与CAN控制器通信。有时候车身CAN控制器可以混杂部署,比如通过将一部分CAN控制器设置成休眠模式,就可以在CAN FD控制器之间进行高速传输,比如刷新ECU的时候。通常通过CAN需要传输几小时,通过CAN FD就可以大大减少这个时间。 下边是CAN FD和CAN 帧的对比图: 首先是CAN FD没有remote frame这个帧了。也不难想到,首先是这个用的确实不多,其次remote frame没有Data Field,而CAN FD 和CAN区别就在这里,所以remote frame就失去了其意义。在数据帧中,RTR也被换成RRS(Remote Request Substitution),并且保持显性电位。在帧头的SOF,IDE,以及帧尾的ACK,DEL,EOF以及ITM(Intermission Field)都与CAN总线一致。 CAN FD和CAN的帧主要区别位于IDE和ACK之间。如下图所示,两者的区分是那个r保留位,当r是显性电平逻辑0时候,代表这是一个传统的CAN帧,当r是隐性电平逻辑1时候,说明这是一个CAN FD帧,同时这个保留位r有了一个名字FDF: Flexible Data Rate Format。 CAN FD控制器可以发送和接收传统CAN帧以及CAN FD帧,传统CAN控制器在接收CAN FD帧由于显性电平r是不符合规则从而会报错,然后将通过错误帧应答,也就是说,传统CAN并不能解析CAN FD数据,按照错误帧处理。 CAN FD中有一个新的帧叫做BRS(Bit Rate Switch),当这一位是显性时,中间部分数据传输速率baud rate 2 和帧头帧尾传输速率baud rate 1 是相同的,这种情况下CAN FD并不能起到加速速率传输的效果。当这一位是隐性时候,中间部分数据传输速率变为 5Mbit/s,这是一个在实验室大量验证证实在绝大多数车身网络这是比较可靠的值。BRS的值决定了中间部分从BRS起到ACK之前的速率。 ESI全称Error State Indicator,这一位是显性代表这个节点是Error Active状态,如果这一位是隐性,代表这个节点是Error …

CAN FD总线基础 Read More »

敏捷和Scrum

Manifesto for Agile Software Development   We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That …

敏捷和Scrum Read More »

业余无线电

占坑,记录一下我折腾业余无线电刷证的过程   题库: http://www.crac.org.cn/Home/Index http://www.bjwxdxh.org.cn/news/html/?1001.html

网约车司机(一)

说出来你们可能不信,2022年,我这周第一次乘坐网约车。 周日去同学家玩结束的太晚了,公交地铁已经停止了运营。于是只能打车回家,由于我是新用户,打车还便宜了20块。 网约车司机很热情,问我热不热用不用开空调,听不听音乐,并且不管是专车还是快车,在他这儿不做太多的区分,都是最高的服务标准。讲真我该搞不清楚专车快车的区别,从他的话中,我应该是那种便宜的类型吧。我一个糙人没那么多讲究,就说我都行。上车有一个小插曲,我在红绿灯路口等车他手势比划了一下我以为他要掉头于是我过马路到了另外一边,可他后来说让我过到路的另外一边我就又过了两个马路到了红绿灯路口的对角。上车他说从这个细节看出来我性格很好,很多情况一些乘客遇到类似的情形就该有情绪了,他说我在他指错路那一刻没有表现啥很不耐烦表情,他对他如此细节都能观察到似乎感到很满意。 当你在观察一个人的时候,对方也在观察你。在我的视角中,这位司机特别的小心翼翼,上车时候本来打算坐前排,司机说能坐后排吗,对我来说肯定无所谓了。上车后和我寒暄问我冷不冷热不热听不听音乐,以及他之后又表达了对我的观察,给我的印象就是司机很谨慎,他后来讲到他是某五星级酒店做管理的,需要与客户打交道,主要做客户投诉这一块的,形形色色的人都见过,所以对于每个人的特点他在前几秒钟就能有个大概的了解,他的言行可能也与他工作习惯有关吧。 期间他问我是不是零零后,说我声音有点活泼,听着应该很小。我回答道说怎么可能,我是九零后,而且是大九零后。对方问结婚了没我说没,他于是叹气道单身真是好,没有那么多压力,想做什么就做什么。而他现在好不自由,尤其有了孩子后,离婚就更加麻烦。我心里想,一旦心中有过这个想法并且敢和他人提及,在我看来他们家庭的感情被消磨得差不多了吧。他讲到当初结婚,也是家里催得紧,就匆匆忙忙结了,要是现在单身的话,就不会每天这么累,现在房贷每个月八千多,而他是酒店行业的现在很不景气,所以到了晚上被迫出来跑跑网约车贴补一下家用。他所在的万豪五星级酒店平时生意很好,接待的还多是外国人,虽然收入也不是特别高,但是也用不着再做个副业。而现在不行了,虽然他在酒店也是管理层了,可是没有客户他们的收入被影响得厉害,现在每个月都压力好大,所以周五晚上跑快车可能会跑到两点,周六周日的话可能跑到12点。我的那个单是他抢的,像这样子单程一百多的是非常好的大单,他这个跑完可能就回家去休息了,毕竟第二天周一还得工作。 每一个司机背后都是一个家庭,跑快车都有着他们自己的原因。我之后计划简单地记录一下与我有一面之缘的司机,这是在这个城市真实的生活。

Windows 下计算文件hash值

CMD: certutil -hashfile 文件及路径名 sha1 certutil -hashfile 文件及路径名 md5 PowerShell Get-FileHash 文件及路径名 -Algorithm sha1 Get-FileHash 文件及路径名 -Algorithm md5