20260311.一些常用的运维脚本

4 阅读2分钟

20260311.一些常用的运维脚本

利用grep 快速匹配字符串到当前目录下面的所有恩济
grep -rn 'E+' *

快速kill掉yarn队列上的所有任务
yarn application -list | grep "WLM-RPA-CLEAN-ENTRY" | awk '{print $1}' | xargs -n 1 yarn application -kill

修改副本数量
sudo -u hdfs hdfs dfs -setrep -R 1 /
sudo -u hdfs hdfs dfsadmin -report | grep "Configured Capacity"

linux挂载samba
smbclient //ip地址/samba -U 用户名 -p端口

查询亚马逊的日志表的sql
select * from amzn_data_prd.amzn_api_logs where left(create_time , 7 ) > '2025-10-01' and req_params like '%amazonOrderId": "026-0248113-2719568%'

手搓日维表
SELECT
explode(
sequence(
to_date('2020-01-01'),
to_date('2026-12-31'),
interval 1 day
)
) AS dt

所有的发行版的rc.local 目前已经设置为卡机不一定自动启动了, 所以需要手动触发
并且要给执行位
chmod +x /etc/rc.d/rc.local
systemctl start rc-local
chmod +x /etc/rc.local

查看 hive的服务(提供JDBC的服务,不是metabase)
ps -ef | grep -i HiveServer2 | grep -v grep

测试trino环境是否正常
jdk_17/bin/java -jar trino-cli.jar --server http://127.0.0.1:6868 --catalog system --schema runtime << 'EOF'
SELECT node_id, http_uri FROM nodes;
EOF

查询表的字段数量
SELECT
COUNT(*)
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'amzn_data_prd' AND TABLE_NAME = '你的表名';

free -h 查看可用内存大小
df -h 查看挂载的目录
cat /proc/meminfo | grep MemAvailable

检索当前目录里面.txt结尾里面包含isDelete值的行
find . -type f ( -name '*.txt' ) -print0 | xargs -0 grep -nH 'IsDelete'

删除swagger的脚本处理工具, powershell
Get-ChildItem -Recurse -Filter .java | ForEach-Object {
false
newLines=@()GetContentnewLines = @() Get-Content .FullName | ForEach-Object {

if (line.Trim().StartsWith("@Schema")orline.Trim().StartsWith("@Schema") -or line.Trim().StartsWith("@javax.annotation.Generated")) {
true
}
if (inAnnoBlock) { if (Extra open brace or missing close braceinAnnoBlock = false }
return
}
if ($line -match '^\simport\s+io.swagger.v3.oas.annotations.media.Schema;') {
return
}
line
}
Set-Content -Path newLines
}

偷网站脚本模拟真实用户(会在当前的目录上创建一个文件夹, 用于存放相关文件并且会保留目录结构\ 可以抓下来相关的图片和文本)
wget -r -np -k -p -e robots=off -U "Mozilla/5.0" --wait=3 --random-wait https://别偷哦.com/

clickhouse查看表结构
SHOW CREATE TABLE .

;

增量更新观远时间宏
select * from amzn_data_prd.amzn_order where purchase_date BETWEEN '{{{first day of last month}}}' and '{{{today}}}'

美西时间转换(sparksql版本)
FROM_UNIXTIME(
SECONDDIFF (
REGEXP_REPLACE(SUBSTR([purchase_date], 1, 19), 'T', ' '),
'1970-01-01 00:00:00'
) - SECONDDIFF (FROM_UNIXTIME(0), '1970-01-01 00:00:00') - 3600 * CASE
WHEN MONTH(
REGEXP_REPLACE(SUBSTR([purchase_date], 1, 19), 'T', ' ')
) BETWEEN 3 AND 10 THEN 7
ELSE 8
END
)

备份镜像
docker save -o "IMAGE_NAME"
导入镜像
docker load -i "$INPUT_FILE"

HistoryServer 是否已启动?你可以用以下命令确认:
jps | grep HistoryServer

docker save "spark-cluster-jupyter" | gzip > "spark-cluster-jupyter.tar.gz"
gunzip -c my-image.tar.gz | docker load

lsb_release -a # 打印所有信息

第一初始化的时候使用脚本,记得Hadoop别用root用户 单独开一个用户使用就行
36 hdfs namenode -format -force -nonInteractive

yarn启动脚本
73 vim conf/core-site.xml
74 HADOOP_HOME/sbin/stopyarn.sh75HADOOP\_HOME/sbin/stop-yarn.sh 75 HADOOP_HOME/sbin/start-yarn.sh

hadoop启动脚本,jps可以查看 namenode datanode启动 这两个是最重要的
37 start-dfs.sh

超级好用压缩小脚本
tar -czf spark_$(date +%Y%m%d).tar.gz spark

如果你只是想把 HDFS 的 /spark-history 目录下的文件拷贝到本地路径 /opt/workspace/spark-events:
你可以使用 hadoop fs -copyToLocal 或 hdfs dfs -copyToLocal 命令:
hdfs dfs -copyToLocal /spark-history/* /opt/workspace/spark-events/

查看包中是否包含对应的日志信息
jar tf target/ispiritseller-1.0.0.jar | grep -E "log4j|slf4j|commons-logging"

SQL的逻辑进行去重
SELECT
t.*
FROM
(
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY asin, MONTH, marketplace ORDER BY id ASC) AS rn
FROM
dwd_sellerspirit_competitor_details
WHERE
is_delete = 0
) t
WHERE
t.rn > 1 -- 只保留每个str_value_sha256的第一条

spark 基于主键, 使用最新时间来进行去重
Dataset reqDf = reqRaw
.withColumn("rn", row_number().over(latestReqWin))
.filter("rn = 1") // 只要最新那一行
.drop("rn")
.cache();
WindowSpec latestReqWin = Window
.partitionBy("marketplace","asin")
.orderBy(col("req_create_time").desc());

pd展示不完全

一次性设置所有显示选项(推荐!)

pd.set_option('display.max_rows', None) # 显示所有行
pd.set_option('display.max_columns', None) # 显示所有列
pd.set_option('display.width', 1000) # 加宽显示区域
pd.set_option('display.max_colwidth', 50) # 单列最大宽度

重新打印转置后的数据

print(json_df.head(2).T)

集群提交的jar包要自己做好网络的共享不然提交失败
bin/spark-submit --class com.airscholar.spark.WordCountJob --master spark://192.168.116.129:7077 --deploy-mode cluster --driver-memory 512m --executor-memory 512m http://192.168.116.1:3000/spark-job-1.0-SNAPSHOT.jar

docker安装

sudo apt install ca-certificates curl gnupg lsb-release -y
sudo apt install docker.io

sudo mv ~/Downloads/gpg /etc/apt/keyrings/docker.gpg
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release -y

sudo mkdir -p /etc/apt/keyrings
curl -fsSL download.docker.com/linux/ubunt… |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo
"deb [arch=(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg\] https://download.docker.com/linux/ubuntu (lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update

echo "🧹 清理所有 exited 状态的容器..."
docker rm $(docker ps -aq -f status=exited) 2>/dev/null

echo "🧼 清理所有 dangling 镜像()..."
docker rmi $(docker images -f "dangling=true" -q) 2>/dev/null

清除git日志
git checkout --orphan tmp
www.cnblogs.com/wt645631686…

找当前目录下最大的 10 个文件/文件夹

du -ah . | sort -rh | head -n 10

查找 HDFS 上占用空间最大的路径

hdfs dfs -du -h / | sort -rn | head -n 20