文章目录
- 1、开启一个VM
- 2、以……的风格发文
- 3、自动写代码
- 用脚本编写一个多进程ping主机的程序
- 3、用chatGPT学习loki
- 4、客制化脚本
- 生成一个自动建立软连接的脚本
- 5、vscode 插件
1、开启一个VM
在caht中输入一下内容
I want you to act as a Linux terminal. I will type commands and you will reply with what the
terminal should show. I want you to only reply with the terminal output inside one unique
code block, and nothing else. Do no write explanations. Do not type commands unless I
instruct you to do so. When I need to tell you something in English I will do so by putting
text inside curly brackets {like this}. My first command is pwd.
执行ll -ths
ip a
ps -ef
2、以……的风格发文
3、自动写代码
create a bash shell program that scans for open ports on a hostname.
用脚本编写一个多进程ping主机的程序
上点难度,完了要失业了
3、用chatGPT学习loki
4、客制化脚本
我的需求
编写一个shell脚本
1、grep过滤这两个ORA报错'ORA-02063|ORA-08176' 将记录写入ora.error文件并在其中加上当前时间戳表明记录生成的时间,例如LoadEdcData_ARRAY,2022-12-27 12:12:12
2、从10.50.10.180 mysql的ch_qms数据库中执行以下sql获取JOB_NAME和ETL_TIMESTAMP,例如LoadEdcData_OC,2022-12-27 14:00:00
SELECT JOB_NAME,ETL_TIMESTAMP
FROM etl_conf_d
WHERE
1=1
AND JOB_NAME LIKE '%EDC%'
AND JOB_GROUP_NAME = 'EDC_ETL_HIS'
AND VALID_FLG = 'y'
3、将ora.error的第二列时间戳和第二步的ETL_TIMESTAMP时间做比较,如果超过1小时,执行etl -k job,然后再执行etl -s job,其中job取ora.error 得到第一列
经过我的调教,这个脚本就能用了
#!/bin/bash# 过滤这两个 ORA 报错,并将记录写入 ora.error 文件中
grep -E -l "ORA-02063|ORA-08176" /aplog/EDA_ETL/edc_log/*/info.log.* | while read line; do# 在记录中加上当前时间戳echo "$line,$(date +"%Y-%m-%d %T")" >> ora.error
done# 从 MySQL 数据库中执行 SQL 语句,获取 JOB_NAME 和 ETL_TIMESTAMP
mysql -h 10.50.10.180 -uroot -pchot123 -D ch_qms -e "SELECT JOB_NAME,ETL_TIMESTAMP FROM etl_conf_d WHERE 1=1 AND JOB_NAME LIKE '%EDC%' AND JOB_GROUP_NAME = 'EDC_ETL_HIS' AND VALID_FLG = 'y'" > jobs.txt# 遍历 ora.error 文件,并比较时间戳
while read line; do# 将 ora.error 中的第二列时间戳转换为时间戳orastr=`echo $line | cut -d "," -f 2`ora_timestamp=$(date -d "$(echo $line | cut -d "," -f 2)" +%s)# 获取 JOB_NAMEjobstr=$(echo $line | cut -d "," -f 1 | awk -F "/" '{print $5}')echo "job_name: LoadEdcData_$jobstr";job_name=LoadEdcData_${jobstr}# 从 jobs.txt 中查找与 JOB_NAME 匹配的 ETL_TIMESTAMPetl_timestampstr=$(grep -E "$job_name\b" jobs.txt | cut -f 2)etl_timestamp=$(grep -E "$job_name\b" jobs.txt | cut -f 2)# 将 ETL_TIMESTAMP 转换为时间戳etl_timestamp=$(date -d "$etl_timestamp" +%s)echo "ora_timestamp: ${orastr, ora_timestamp-unix: ${ora_timestamp}}"echo "mysql etl_timestamp: $etl_timestampstr, etl_timestamp-unix:${etl_timestamp}"# 计算时间差(以秒为单位)time_diff=$((ora_timestamp-etl_timestamp))echo "time_diff: ${time_diff}"# 如果时间差超过 1 小时(3600 秒),执行 etl -k 和 etl -sif [ $time_diff -gt 3600 ]; then#etl -k "$job_name"echo $job_nameetl -c "$job_name"fi
done < ora.error
对于Oracle的这个bug就可以优雅重启了. 监控报警是5个小时的延迟,我的这个重启计划是1小时的延迟。所以该类问题应该不会再报警了。
生成一个自动建立软连接的脚本
看来chatGPT有过度理解的嫌疑
5、vscode 插件
这个插件的使用门槛很低,只需要把自己的API key丢进去就能用。前提是你有openAI的账户
创建API key
把api key贴进去即可。
到4月1 还有18刀的免费使用额度。
vscode中使用chatGPT优化Dockerfile,操作相当简单,直接选中代码右击选择即可。真的香