Linux

Some notes about Linux.

教研室有台tplink不知道怎么回事,总是自己掉线,还是很奇葩的那种掉线,明明ip和网关都变0.0.0.0了,还是显示在线,导致自带的自动登陆功能不起作用。 之前都是手动check和重新登陆,实在是浪费生命,于是乎来个定时脚本搞定吧,反正教研室有24小时online的服务器。 整个任务大体上分为三个步骤: 分析tplink管理API 编写管理脚本 使用systemd timer定时启动脚本(当然cron也是可以的,但是作为Archer,怎么能不用最新技术~) 1. 分析tplink管理API 首先登陆http://192.168.0.1 (替换成自己的管理地址,下同),教研室的这个型号是WR842N,登陆界面及其简单,就一个密码框。一开始我以为是把密码用明文或者hash一下post给路由,但是填写密码后发现没有post数据,百思不得其解,后来几番搜索,找到一篇分析的好文,这篇文章不仅告诉了如何登陆,而且还分析的很详细。想了解详情的请参见这篇blog。至于代码,我做了简化,直接把chrome里监控到的header粘进代码发送,简单粗暴~ 2. 编写管理脚本 重点来了,先贴代码: #!/bin/python3 # -*- coding: utf-8 -*- import urllib.request import sys progArgs = [“get_status”, “login”] ip = […]

$ uptime:输出最近1, 5, 15分钟的负载。 $ dmesg | tail:输出系统日志的最后10行,用于检查内核报警。 $ vmstat 1:输出系统核心指标,其中r, free, (si, so), (us, sy, id, wa, st)分别代表等待CPU资源进程数,系统可用内存数,(交换区写入,读取),(用户,系统,空闲,IO等待,其他CPU时间),参数表示刷新间隔/秒。 $ mpstat -P ALL 1:输出每个CPU的占用情况,一般若有一个CPU占用率特别高,则可能是一个单线程应用程序引起的。 $ pidstat 1:输出进程的CPU占用率。 $ iostat -xz […]

如果用sudo执行python命令的话,会发现import os; os.getenv(“PATH”)得到的变量和普通权限得到的不一致,即使是sudo加上-E参数也没有用。 这是sudoers的默认行为导致的,解决方案: sudo visudo Defaults env_reset 改为Defaults !env_reset,注意,加了!号 同时注释掉 Defaults secure_path 改完记得注销一下。 不需要以sudo执行python的时候记得改回来,防止出现权限安全问题。 这个奇葩的问题Google居然搜不到,看来是个神坑,分析过程如下: 既然问题的根源是sudo -E python都无法继承当前的环境变量,那么首先man sudo 搜索-E参数,发现是这么写的: -E, –preserve-env Indicates to the security policy that the […]

虽然用Linux好几年了,但是对shell脚本的掌握基本为零……最近需要做一些文件批量重命名,图像批量预处理,文本批量预处理的琐碎而重复的工作,于是乎下定决心好好学习一下shell脚本。于是找了一本口碑不错的shell脚本入门书—-《Linux Shell 脚本攻略 第2版》,是印度人Shantanu Tushar和Sarath Lakshman写的。边看边写博客系列(计划分九个系列完成)当做读书笔记,同时,也不完全是读书笔记,会加上一些解释的链接或者个人的经验:)当然,如果有人看,也算是做个“脱水版”的精炼shell脚本入门“指南”吧:) 基本的文件格式结构,运行规则:文件开头第一行 #!/bin/bash(这里可以是别的shell的路径),#!这玩意叫shebang,运行可以$ bash script.sh 这种运行方式首行的shebang就没什么用了,或者$ chmod +x script.sh 然后 $ ./script.sh。 命令间隔符:换行符或者分号; 是等价的,也就是说 $ cmd1; cmd2 等同于 $ cmd1 $ cmd2。 终端的打印:最基本的echo,$ echo “Hello […]

This blog is excellent for best practices in Android! Here is the summary: Use Gradle and its recommended project structure Put passwords and sensitive data in gradle.properties Use the Jackson […]