程序猿的日常——工作中常用的Shell脚本
工作当中总是会有很多常用的linux或者命令,这里就做一个总结
文件远程拷贝
如果想把文件从本机拷贝到远程,或者从远程下载文件到本地。
# 把本地的jar拷贝到远程机器xxxip的/home/source目录下
scp a.jar root@xxxip:/home/source
# 拷贝远程的文件到本地
scp root@xxxip:/home/source/b.jar b.jar
目录下文件太多无法删除
如果目录下的文件很多,无法直接rm -rf,那么可以寻找一些匹配模型,分批删除。比如文件下面有很多的文件:
001.jpg
002.jpg
003.jpg
...
那么可以按照下面的命令删除:
rm -rf *1.png
文件的解压缩
xxx目录为待压缩的目录:
tar -cvf xxx.tar xxx 压缩
解压缩:
tar -xvf xxx.tar 默认解压缩到当前目录
Linux统计
如果想要统计一个文件的行数,可以直接用wc:
wc -l xxx.txt
如果想要统计目录下文件的数量,可以这样:
ls -l | grep "^-" | wc -l
网络端口是否可用
telnet ip port
查看磁盘的空间
df -hl
spark脚本刷历史
#!/bin/sh
URL="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8"
USER="test"
PASSWORD="123456"
for i in {10..1}
do
let "sqoop_day=i+1"
day=`date --date="${sqoop_day} days ago" +%Y-%m-%d`
spark_day=-${i}
spark2-submit --master yarn --deploy-mode cluster --executor-memory 5G --num-executors 3 --executor-cores 3 --driver-memory 5G --class com.a.b.c.App spark.jar spark_name ${spark_day}
sqoop export --connect ${URL} --username ${USER} --password ${PASSWORD} --table table_name --update-mode allowinsert --update-key b_id --fields-terminated-by ^ --export-dir hdfs://nameservice1/data/csv/${day} --mapreduce-job-name test_sqoop -m 1
done