linux下crontab定时在mysql中生成明日需要使用的空表 / Timely operational on linux crontab

通过定时crontab 调用远程执行sql新建表结构 create_table.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/bin/bash # 生成明天的日期 tomorrow=$(date -d "+1 days" "+%Y%m%d") echo next date: ${tomorrow} # sql文件脚本中的日期替换为明日的日期 sed -i "s/\([0-9]\{8\}\)/${tomorrow}/g" /home/crontab/create_table.sql echo `cat /home/crontab/create_table.sql | head -n 1` # 通过执行mysql执行文件中的sql 脚本创建以命题啊日期结尾的表名 mysql -uroot -p123456 -h10.0.56.20 -Dpangu</home/wangjun/crontab/create_table.sql 加入到 crontab 中每日生成下一日的空表 别忘了给脚本加执行权限 1 2 3 4 5 6 7 8 9 # 每天一点执行 0 1 * * * sh /home/wangjun/crontab/create_table.sh # 创建 crontab 任务 crontab /home/wangjun/crontab/crontest.cron # 查看crontab 任务 crontab -l

September 27, 2019 · 1 min · 83 words · atovk

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

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

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