0%

监控硬盘利用率

使用fdisk来分析硬盘使用信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
DATE=$(date +%F" "%H:%M)
IP=$(ifconfig eth0 |awk -F '[ :]+' '/inet addr/{print $4}')
MAIL="example@mail.com"
TOTAL=$(fdisk -l |awk -F'[: ]+' 'BEGIN{OFS="="}/^Disk \/dev/{printf "%s=%sG,",$2,$3}')
PART_USE=$(df -h |awk 'BEGIN{OFS="="}/^\/dev/{print $1,int($5),$6}')
for i in $PART_USE; do
PART=$(echo $i |cut -d"=" -f1)
USE=$(echo $i |cut -d"=" -f2)
MOUNT=$(echo $i |cut -d"=" -f3)
if [ $USE -gt 80 ]; then
echo "
Date: $DATE
Host: $IP
Total: $TOTAL
Problem: $PART=$USE($MOUNT)
" | mail -s "Disk Monitor" $MAIL
fi
done

spark中连接hive

由于spark是大数据的分析计算引擎,hive作为一个数据仓库,spark经常需要和hive结合起来使用,spark sql如果需要连接到一个hive上,需要将hive-site.xml复制到spark的conf目录下(如果使用spark内置的hive元数据仓库,则会在spark的工作目录下创建Hive元数据仓库,metastore_db),且由于Hive的元数据存储在mysql中,所以spark的jars目录下还需要有mysql驱动

由于我下载的版本是没有集成hive的,所以又下载了一个spark源码包进行编译的

1
2
# 在源码包中进行执行
./build/mvn -Phive -Phive-thriftserver -DskipTests clean package
阅读全文 »

CPU基础知识

CPU的内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。寄存器可用来暂存指令、数据等处理对象;控制器负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机;运算器负责运算从内存读入寄存器的数据;时钟负责发出CPU开始计时的时钟信号

阅读全文 »

查看端口占用

使用lsof

lsof(list open files)是一个列出当前系统打开文件的工具,当然用的最多的是lsof -i

可以使用lsof -i:端口号 来查看端口占用情况

1
2
3
4
5
6
7
lsof -i:8010
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 35653 zhanghe 10u IPv4 0xcac2e413ddf9c5b9 0t0 TCP *:8010 (LISTEN)
nginx 35654 zhanghe 10u IPv4 0xcac2e413ddf9c5b9 0t0 TCP *:8010 (LISTEN)
nginx 35655 zhanghe 10u IPv4 0xcac2e413ddf9c5b9 0t0 TCP *:8010 (LISTEN)
nginx 35656 zhanghe 10u IPv4 0xcac2e413ddf9c5b9 0t0 TCP *:8010 (LISTEN)
nginx 55650 zhanghe 10u IPv4 0xcac2e413ddf9c5b9 0t0 TCP *:8010 (LISTEN)
阅读全文 »

MySQL自动备份脚本

mysqldump命令将数据库中的数据备份成一个文本文件,表的结构和数据将存储在生成的文本文件中

基本语法

备份一个数据库下的多个表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 备份一个数据库下的多个表

# username表示用户名
# pwd表示密码
# localhost为数据库地址
# dbname表示数据库名称
# table1和table2参数表示需要备份的表的名称,为空则整个数据库备份
mysqldump -u username -p pwd -h localhost --default-character-set=utf8 dbname table1 table2 > BackupName.sql

# 排除某些表不备份
mysqldump -u username -p pwd -h localhost --default-character-set=utf8 --database dbname -- --lock-all-tables --ignore-table=table1 > BackupName.sql
# 默认lock-tables会将所要备份的表进行锁表LOCK TABLES,所有表导出完成后,才会进行解锁UNLOCK TABLES
# lock-all-tables 在开始时会执行FLUSH TABLES WITH READ LOCK,导出完成,退出会话时,自动释放锁
# single-transaction 在开始时执行SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ,然后开启事务,并UNLOCK TABLES,且在每张表进行导出前,都会进行SAVEPOINT sp设置保存点,导出后执行ROLLBACK TO SAVEPOINT sp,回到保存点,保证数据一致性
阅读全文 »