java通过oshi获取系统和硬件信息 / Oshi get system and hardware information

OSHI 是用java写的系统监控工具接口,提供主要的监控指标信息,具体接口作用如下: maven 依赖引入 1 2 3 4 5 6 <dependency> <groupId>com.github.oshi</groupId> <artifactId>oshi-core</artifactId> <version>4.0.0</version> </dependency> API 操作 1 2 3 4 5 6 7 8 9 // 初始化系统信息对象 SystemInfo systemInfo = new SystemInfo(); // 获取硬件信息 HardwareAbstractionLayer hardware = systemInfo.getHardware(); // 获取操作系统进程相关信息 OperatingSystem operatingSystem = systemInfo.getOperatingSystem(); 操作BIOS系统信息 获取 BIOS 系统信息 1 2 3 4 5 6 7 8 ComputerSystem computerSystem = hardware.getComputerSystem(); Firmware firmware = computerSystem.getFirmware(); String name = firmware.getName(); String description = firmware.getDescription(); String firmwareManufacturer = firmware.getManufacturer(); String releaseDate = firmware.getReleaseDate(); String firmwareVersion = firmware.getVersion(); 传感器信息 风扇/温度信息 ...

September 27, 2019 · 2 min · 338 words · atovk

JDBC链接各种数据库的例子 / Java jdbc example holder

java语言下 jdbc 各种数据库的链接方式 mysql/mariadb 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 private static Connection getConn() { String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/samp_db"; String username = "root"; String password = ""; Connection conn = null; try { Class.forName(driver); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } oracle (1)Oracle JDBC Thin using a ServiceName: 1 2 #jdbc:oracle:thin:@//<host>:<port>/<service_name> #Example: jdbc:oracle:thin:@//192.168.2.1:1521/XE (2)Oracle JDBC Thin using an SID: 1 2 #jdbc:oracle:thin:@<host>:<port>:<SID> #Example: jdbc:oracle:thin:@192.168.2.1:1521:X01A (3)Oracle JDBC Thin using a TNSName: 1 2 #jdbc:oracle:thin:@<TNSName> #Example: jdbc:oracle:thin:@GL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // 获得连接对象 private static Connection getConn() { String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@//127.0.0.1:1521/orcl"; String username = "root"; String password = ""; Connection conn = null; try { Class.forName(driver); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } sqlserver 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // sqlserver2012 private static Connection getConn() { String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String url = "jdbc:sqlserver://localhost:1433;DatabaseName=student"; String username = "root"; String password = ""; Connection conn = null; try { Class.forName(driver); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } db2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 private static Connection getConn() { String driver = "com.ibm.db2.jcc.DB2Driver"; String url = "jdbc:db2://10.27.70.33:60000/dbtest:currentSchema=db2inst1"; String username = "root"; String password = ""; Connection conn = null; try { Class.forName(driver); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } PostgreSQL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 private static Connection getConn() { String driver = "org.postgresql.Driver"; String url = "jdbc:postgresql://127.0.0.1:5432/test"; String username = "root"; String password = ""; Connection conn = null; try { Class.forName(driver); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } greenplum 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 private static Connection getConn() { String driver = "com.pivotal.jdbc.GreenplumDriver"; String url = "jdbc:pivotal:greenplum://10.10.10.10:5432;DatabaseName=mfg"; String username = "root"; String password = ""; Connection conn = null; try { Class.forName(driver); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } hana 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 private static Connection getConn() { String driver = "com.sap.db.jdbc.Driver"; String url = "jdbc:sap://172.23.1.123:39015"; String username = "root"; String password = ""; Connection conn = null; try { Class.forName(driver); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } hive 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 private static Connection getConn() { /** hiveserver org.apache.Hadoop.hive.jdbc.HiveDriver jdbc:hive://localhost:10000/default hiveserver2 org.apache.Hive.jdbc.HiveDriver jdbc:hive2://localhos:10000/default */ String driver = "org.apache.hive.jdbc.HiveDriver"; String url = "jdbc:hive2://localhos:10000/default"; String username = "root"; String password = ""; Connection conn = null; try { Class.forName(driver); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } sybase 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 private static Connection getConn() { String Driver = "com.sybase.jdbc3.jdbc.SybDriver"; //数据库驱动 String url = "jdbc:sybase:Tds:192.168.2.103:5000/SXABC"; // 连接的数据库是SXABC String username = "root"; String password = ""; Connection conn = null; try { Class.forName(driver); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; }

September 13, 2019 · 4 min · 682 words · atovk

linux 命令行终端快捷键操作 / Linux teminal option

基础快捷键 快捷键 功能 Ctrl + a 跳到本行的行首 Ctrl + e 则跳到页尾 Ctrl + u 删除当前光标前面的文字 ctrl + k 删除当前光标后面的文字 Ctrl + w Alt + d w删除光标前面的单词的字符,d则删除后面的字符 Alt + Backsapce 删除当前光标后面的单词;误删使用Ctrl + y进行恢复, Ctrl + L进行清屏操作 ctrl + a 光标移到行首 ctrl + b 光标左移一个字母 ctrl + c 杀死当前进程 ctrl + d 退出当前 Shell ctrl + e 光标移到行尾 ctrl + h 删除光标前一个字符,同 backspace 键相同 ctrl + k 清除光标后至行尾的内容 ctrl + l 清屏,相当于clear ctrl + r 搜索之前打过的命令.会有一个提示,根据你输入的关键字进行搜索bash的 history 快捷键 快捷键 功能 ctrl + u 清除光标前至行首间的所有内容 ctrl + w 移除光标前的一个单词 ctrl + t 交换光标位置前的两个字符 ctrl + y 粘贴或者恢复上次的删除 ctrl + d 删除光标所在字母; 注意: (backspace及ctrl + h)是删除光标前的字符. ctrl + f 光标右移 ctrl + z 将进程转到后台运行,fg命令恢复.比如top -d1 然后ctrl + z到后台fg重新恢复 esc组合 快捷键 快捷键 功能 esc + d 删除光标后的一个词 esc + f 往右跳一个词 esc + b 往左跳一个词 esc + t 交换光标位置前的两个单词

September 13, 2019 · 1 min · 134 words · atovk

域名解析类型详解 / Domain DNS info detail

域名解析类型详解 1.主机[A]记录 描述: 主机地址记录。在 DNS 域名与 IP 地址之间建立映射关系 语法: owner class ttl A IP_v4_address 例子: host1.example.microsoft.com. IN A 127.0.0.1 2.别名[CNAME] 描述: 用来表示用在该区域中的其它资源记录类型中已指定名称的替补或别名 DNS 域名。 语法: owner ttl class AFSDB subtype server_host_name 例子: aliasname.example.microsoft.com. AFSDB 1 truename.example.microsoft.com. 3.主机信息[HINFO] 描述: 用来说明映射到特定 DNS 主机名的 CPU 类型和操作系统类型的 RFC-1700 保留字符串类型,这个信息可以被应用程序通信协议使用。 语法: owner ttl class HINFO cpu_type os_type 例子: my-computer-name.example.microsoft.com. HINFO INTEL-386 WIN32 4.邮箱[MB] 描述: 用来将指定的域邮箱名映射到这个邮箱的主机的当前区域中的主机地址记录 语法: owner ttl class MB mailbox_hostname 例子: mailbox.example.microsoft.com. MB mailhost1.example.microsoft.com ...

September 13, 2019 · 1 min · 204 words · atovk

MAC 无法打开应用程序 / Fix mac application can‘t open

Mac OS-[xxx.app已损坏,打不开.你应该将它移到废纸篓] 出现这个问题的解决方法: 修改系统配置: 1 系统偏好设置... -> 安全性与隐私 -> 修改为任何来源 如果没有这个选项的话(macOS Sierra 10.12),打开终端,执行: 1 2 3 4 5 # 此命令为 关闭苹果的Gatekeeper, 其实是有被攻击的风险的 # 参考维基百科 https://en.wikipedia.org/wiki/Gatekeeper_(macOS) sudo spctl --master-disable

September 13, 2019 · 1 min · 28 words · atovk

书单 / Which books have you read ?

最近读了一些书,读的速度太快,导致前两本读了啥内容也不比较模糊,遂之索性把书单和主要内容记录下来,方便以后回忆和查阅。 201908 《领导力21法则》 《OKR工作法则》 《斯坦福极简经济学》 《乌合之众》 《人性的弱点》 《JAVA 并发编程的艺术》 2011909 《解读/量化投资》

September 13, 2019 · 1 min · 11 words · atovk

VIM快捷键 / Vim Keyboard Shortcuts Cheatsheet

VIM 基本速查表 COPY BY vim-keyboard-shortcuts-cheatsheet 基本操作 快捷键 功能 Esc 从当前模式转换到“普通模式”。所有的键对应到命令。 i “插入模式”用于插入文字。回归按键的本职工作。 : “命令行模式” Vim 希望你输入类似于保存该文档命令的地方。 方向键 快捷键 功能 h 光标向左移动一个字符 j 或 Ctrl + J 光标向下移动一行 k 或 Ctrl + P 光标向上移动一行 l 光标向右移动一个字符 0 (数字 0)移动光标至本行开头 $ 移动光标至本行末尾 ^ 移动光标至本行第一个非空字符处 w 向前移动一个词 (上一个字母和数字组成的词之后) W 向前移动一个词 (以空格分隔的词) 5w 向前移动五个词 b 向后移动一个词 (下一个字母和数字组成的词之前) B 向后移动一个词 (以空格分隔的词) 5b 向后移动五个词 G 移动至文件末尾 gg 移动至文件开头 浏览文档 快捷键 功能 ( 跳转到上一句 ) 跳转到下一句 { 跳转到上一段 } 跳转到下一段 [[ 跳转到上一部分 ]] 跳转到下一部分 [] 跳转到上一部分的末尾 ][ 跳转到上一部分的开头 插入文本 快捷键 功能 a 在光标后插入文本 A 在行末插入文本 i 在光标前插入文本 o (小写字母 o)在光标下方新开一行 O (大写字母 O)在光标上方新开一行 特殊插入 快捷键 功能 :r [filename] 在光标下方插入文件 [filename] 的内容 :r ![command] 执行命令 [command] ,并将输出插入至光标下方 删除文本 快捷键 功能 x 删除光标处字符 dw 删除一个词 d0 删至行首 d$ 删至行末 d) 删至句末 dgg 删至文件开头 dG 删至文件末尾 dd 删除该行 3dd 删除三行 简单替换文本 快捷键 功能 r{text} 将光标处的字符替换成 {text} R 进入覆写模式,输入的字符将替换原有的字符 复制/粘贴文本 快捷键 功能 yy 复制当前行至存储缓冲区 ["x]yy 复制当前行至寄存器 x p 在当前行之后粘贴存储缓冲区中的内容 P 在当前行之前粘贴存储缓冲区中的内容 ["x]p 在当前行之后粘贴寄存器 x 中的内容 ["x]P 在当前行之前粘贴寄存器 x 中的内容 撤销/重做操作 快捷键 功能 u 撤销最后的操作 Ctrl+r 重做最后撤销的操作 搜索和替换 快捷键 功能 /search_text 检索文档,在文档后面的部分搜索 search_text ?search_text 检索文档,在文档前面的部分搜索 search_text n 移动到后一个检索结果 N 移动到前一个检索结果 :%s/original/replacement 检索第一个 “original” 字符串并将其替换成 “replacement” :%s/original/replacement/g 检索并将所有的 “original” 替换为 “replacement” :%s/original/replacement/gc 检索出所有的 “original” 字符串,但在替换成 “replacement” 前,先询问是否替换 书签 快捷键 功能 m {a-zA-Z} 在当前光标位置设置书签,书签名可用一个大小写字母({a-zA-Z}) :marks 列出所有书签 {a-zA-Z} 跳转到书签 {a-zA-Z} 选择文本 快捷键 功能 v 进入逐字可视模式 V 进入逐行可视模式 Esc 退出可视模式 改动选中文本 快捷键 功能 ~ 切换大小写 d 删除一个词 c 变更 y 复制 > 右移 < 左移 ! 通过外部命令进行过滤 保存并退出 快捷键 功能 :q 退出 Vim,如果文件已被修改,将退出失败 :w 保存文件 :w new_name 用 new_name 作为文件名保存文件 :wq 保存文件并退出 Vim :x 保存文件并退出,文件未变动时,编辑时间不做变更 :q! 退出 Vim,不保存文件改动 ZZ 退出 Vim,如果文件被改动过,保存改动内容 ZQ 与 :q! 相同,退出 Vim,不保存文件改动

May 31, 2019 · 2 min · 260 words · atovk

批量删除HDFS上无效的临时文件 / Batch delete hdfs dir

批量删除HDFS上无效的临时文件 需求:当前日期下的临时目录不删除(可能存在正在运行的临时文件),通过日期过滤dir将非当前日期的dir进行删除 第一版 由于hdfs删除效率太低,删除一个文件需要 1-2S 完全无法忍受 PB的数据等待删除 1 2 3 4 5 6 7 for line in $(hdfs dfs -ls /user/wangping/_sqoop/ |grep -v `date +%Y-%m-%d`|awk -F ' /' '{print $2}') do dir=/${line} echo "drop sqoop hdfs tmp dir: ${dir}" `hdfs dfs -rm -r ${dir}` done 第二版 中间想一次性加载所有目录一次删除,发现我发遍历初所有待删除目录(太鸡儿多了) 通过批量执行删除脚本,一千为批次的进行删除执行时间依旧一次删除时间为1-3S左右,效率提高不是一个数量级 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 dirs="" size=0 for line in $(hdfs dfs -ls /user/wangping/_sqoop/ |grep -v `date +%Y-%m-%d`|awk -F ' /' '{print $2}') do let "size++" dir=/${line} echo "drop sqoop hdfs tmp dir: ${size} ${dir}" dirs=${dirs}" "${dir} #echo ${size} if [[ `expr ${size} % 1000` == 0 ]]; then echo "dirs:" ${dirs} hdfs dfs -rm -r ${dirs} dirs="" fi # `hdfs dfs -rm -r ${dir}` done echo ${dirs} hdfs dfs -rm -r ${dirs} 到此 批量删除的工作告一段落 涨知识: 1,shell 中的计算变量 2,shell 中的自增变量 ...

May 31, 2019 · 1 min · 143 words · atovk

2018 总结

2019 FLAG 🚩 2018 明明知道自己要干什么,却时而缺乏执行能力,2019强化自我执行能力,学会规划,养成阅读习惯,自我记录与思考; 考研 这是一年后的又一次尝试,但这次提前准备,结果一定不会差。 数学是考研的一道大坎了,这势必要啃下来! 英语语法还是有薄弱的,需要啃一本语法书(需要规划进执行力行动中),单词每周都会背, 但是需要一个检验环节(执行力行动加入单词默写/短文阅读批注行动) 从之前的考试来看,专业的内容多为项目工程的内容,算法大多为基础数据结构和基础排序,虽然不在话下, 但是考虑到工作需要,在准备环节需要适当加强技能巩固; 职业 what i want? 现在的公司肯定不是我想留下来的,其实已经落后了,虽然表面上说是形势原因, 但内心真实的内容是自己在2018年的执行力欠佳的主要原因,2019稳住自己,能战胜自己的人,就没有人能无法超越; 学会 GOLAN and RUST K8S 精通 算法 100题使用 java/golan 通刷(主要总结算法思想及相关算法适用案例) github 提交(执行力计划,编年史汇结内容感想) 参与一个开源项目开发 软件架构案例学习与思考(两周一次) 学会沟通 做一个有趣的人,干一些有趣的事情;

January 20, 2019 · 1 min · 34 words · atovk

ubuntu18.xx 中修改 mysql 数据库默认字符编码

ubuntu18.xx 中修改 mysql 数据库默认字符编码 今天更换meriadb 为mysql 之后发现 springboot jpa存入数据库中的字符是乱码,看了下问题为mysql字符编码不是 utf-8了 ubuntu18 默认mysql配置文件地址 sudo vim /etc/mysql/conf.d/mysql.cnf 编辑文件内容 1 2 3 4 5 6 7 8 9 10 [mysql] default-character-set=utf8 [client] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8 重启mysql sudo service mysql restart 注意 如果已经存在的库中乱码,手动重设字符编码/删除重建;

January 20, 2019 · 1 min · 47 words · atovk