docker
导出:docker save mysql:latest | gzip > mysql_latest.tar.gz
导出:docker save -o mysql.tar mysql :5.7
导入:docker load < mysql_latest.tar.gz
导入:docker load --input mysql_latest.tar.gz
构建: docker build -t jdk1.8 构建jdk镜像
解释:--input , -i : 指定导入的文件,代替 STDIN。"命令 < 文件" 这是将文件作为命令输入.
运行: docker run -it -d --restart=always --network=host zookeeper:3.4
运行: docker run -it -d -p 2181:2181 -name zookeeper1 zookeeper:3.4
查看镜像:docker ps
查看容器: docker ps -a
删除容器: docker rm 容器ID
查看日志: docker logs -f 容器ID
出现 no space left on device:
docker info 查看docker目录(Docker Root Dir: /var/lib/docker)
查看空间使用情况:df -h /var/lib/docker/ (注意结果中出现的"ubuntu–vg-ubuntu–lv",看到空间已经接近满了,下一步扩容)
查看可分配空间: sudo vgdisplay
出现(
Alloc PE / Size 1024 / 4.00 GiB
Free PE / Size 131839 / <515.00 GiB
)
扩容至20G : lvextend -L 20G /dev/mapper/ubuntu–vg-ubuntu–lv
重新计算容量:resize2fs /dev/mapper/ubuntu–vg-ubuntu–lv
df /var/lib/docker/
java
nohup java -jar -Dspring.profiles.active=test xx.jar >/dev/null 2>&1 &
nohup java -jar -Dspring.profiles.active=test xx.jar &
nohup java -jar -Dspring.profiles.active=prod xx.jar &
nohup java -jar -Xms512M -Xmx2048M -XX:PermSize=512M -XX:MaxPermSize=1024M liangxin.jar
Xms:堆内存初始大小
Xmx:堆内存最大值
PermSize:永久内存初始大小
MaxPermSize:永久内存最大值
nohup java -jar -Xloggc:/app/log -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/dump/ 输出gc log 及 dump
举例:
nohup java -jar -Xms1024M -Xmx1024M -XX:PermSize=512M -XX:MaxPermSize=512M -Xloggc:/app/tmp/cockpit3/gc.log -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/dump/ -Dspring.profiles.active=test portfolio-overview-1.1.18.jar >/dev/null 2>&1 &
nohup java -jar -Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -XX:MetaspaceSize=200m -Xloggc:/app/tmp/cockpit3/gc.log -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/dump/ -Dspring.profiles.active=test portfolio-overview-1.1.24.jar >/dev/null 2>&1 &
nohup java -jar -Xms1024m -Xmx2048m -Xmn256M -XX:MaxPermSize=512M -XX:MaxDirectMemorySize=512M -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+HeapDumpBeforeFullGC chinaamc-msg-service-0.0.1.jar -Dspring.profiles.active=prod >/dev/null 2>&1 &
// 生成dump文件
jmap -dump:format=b,file=heap.dump 1053
nohup java -jar -Dspring.profiles.active=test management-cockpit-1.0.3.jar >/dev/null 2>&1 &
kafka
windows
.\kafka-console-producer.bat --broker-list 0.0.0.0:9092 --topic hh
.\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic tttt--from-beginning
.\kafka-topics.bat --describe --zookeeper 0.0.0.0:2181 --topic testtopic
.\kafka-topics.bat --zookeeper 0.0.0.0:2181 --create --topic hh--replication-factor 1 --partitions 3
.\kafka-console-consumer.bat --bootstrap-server 0.0.0.0:9092 --topic hh --group group
Linux
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
./kafka-topics.sh --list --zookeeper localhost:2181
./kafka-console-producer.sh --broker-list 10.0.16.12:9092 --topic test
./kafka-console-consumer.sh --bootstrap-server 10.0.16.12:9092 --topic test
bootstrap-servers vs zookeeper
bootstrap-servers指的是目标集群的服务器地址,这个和broker-list功能是一样的,只不过我们在console producer要求用后者。
以前我们使用console consumer测试消息收发时会这样写:kafka-console-consumer.sh --zookeeper localhost:2181 --topic test
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
现在我们也可以这样写 :kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
mongo
cd /app/mongodb/mongodb-linux-x86_64-4.0.13/bin
./mongod -f mongodb.conf 启动mongo
./mongod --shutdown 或者 kill进程 关闭mongo
db.t4.ensureIndex({firstname: 1}, {unique: true}); 设置索引
db.sites.getIndexes() 获取索引
rabbitMq
启动停止
./rabbitmq-server 该命令ctrl+c后会关闭服务
./rabbitmq-server -detached 在后台启动Rabbit
./rabbitmqctl stop 关闭服务
关闭服务(kill) 找到rabbitmq服务的pid [不推荐]
ps -ef|grep rabbitmq
kill -9 ****
netstat -ntulp |grep 5672
linux
多用户授权
chmod u+rwx,g+rx,o-x /path/to/folder user1 user2
这里,u+rwx为user1和user2添加了读、写和执行权限,g+rx为组用户添加了读和执行权限,而o-x移除了其他用户的执行权限。
如果要递归地对文件夹及其所有内容赋予权限,可以使用-R选项:
chmod -R u+rwx /path/to/folder user1 user2
开放端口:
1.systemctl start firewalld.service(开启防火墙)
2.iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 8022 -j ACCEPT (开放指定端口)
3.iptables -nvL (查看已开放的端口)
4.service firewalld restart(从启防火墙)
5.systemctl stop firewalld.service(停止防火墙)
du命令
对当前目录下所有的目录和文件的大小进行汇总,-s表示汇总,-h表示以KB, MB, GB, TB格式进行人性化显示
du -sh .
对当前目录下每一个目录和文件的大小分别进行汇总
du -sh *
查看空间内存
free -m
5.查看磁盘使用情况
df -h
nohup java -jar yourProject.jar >/dev/null 2>log & nohup输出错误日志
nohup java -jar yourProject.jar >/dev/null 2>&1 & nohup不输出
$grep -10 ‘123’ test.log//打印匹配行的前后10行
或
$grep -C 10 ‘123’ test.log//打印匹配行的前后10行
或
$ grep -A 10 -B 10 ‘123’ test.log //打印匹配行的前后10行
$grep -A 10 ‘123’ test.log //打印匹配行的后10行
$grep -B 10 ‘123’ test.log//打印匹配行的前10行
查看服务
ps -ef |grep ***
netstat -nlpt 查看端口占用
ps -ef |grep java |grep port |awk '{$2}' 打印过滤结果
grep '内容' 11.log > 22.log 过滤日志
看端口是否占用一般用两个
(1) netstat -an|grep 8080
(2) lsof -i:8080
区别:
1.netstat无权限控制,lsof有权限控制,只能看到本用户
2.losf能看到pid和用户,可以找到哪个进程占用了这个端口
通过以下命令查看当前的java默认配置
update-alternatives --display java
linux下查看以某个字母开头都所有文件
ls -al | grep c*
//卸载openjdk
rpm -qa | grep java
rpm -e --nodeps
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
java -version
vim /etc/profile
source /etc/profile
java -version
//使用CURL 测试get 和 post请求
curl 127.0.0.1:8090/scheduled/icc3?validDate='2019-12-10'
curl -X POST "http://10.16.2.111:10015/services/call?targetCode=icc&serviceCode=indexQuery" -H "accept: application/json" -H "Content-Type: application/json" -d @close.json
//编辑系统环境变量
vim /etc/profile
export JAVA_HOME=/app/jdk1.8.0_161
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
查看dump文件(堆内存使用情况)
命令集:
ps -mp pid -o THREAD,tid,time | sort -rn
printf "%x\n" pid 输出对应的tid
jstack pid |grep tid -A 30
jstack pid >> java.txt 拿到线程堆栈信息
jstat -gc 查看每秒GC 情况
jmap -dump:format=b,file=temp.dump pid 拿到堆的细节(在出现full gc出现同时
查看 JVM 参数:
jinfo -flag +PrintGC 43520
jinfo -flag +PrintGCDetails 43520
新增表的列属性
ALTER TABLE sync_asset_code ADD ALTER TABLE sync_asset_code ADD `fggddlb` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '产品类别'
删除表主键
ALTER TABLE msg_bond_redeem DROP PRIMARY KEY;
新增表主键
ALTER TABLE msg_bond_redeem ADD PRIMARY KEY (`message_num`,`message_type`,`security_code`,`exchange_code`,`portfolio_code`);
新增多列索引
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` );
离线安装docker-compose
(1)首先访问 docker-compose 的 GitHub 版本发布页面:
https://github.com/docker/compose/releases
(2)由于服务器是 CentOS 系统,则下载 Linux 版本的 Compose:
(3)将下载下来的“docker-compose-Linux-x86_64”文件上传到服务器上,然后执行如下命令将其移动到 /usr/local/bin,并改名为“docker-compose”。
1
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
(4)接着执行如下命令添加可执行权限:
1
sudo chmod +x /usr/local/bin/docker-compose
(5)最后使用 docker-compose -v 命令测试是否安装成功(如果提示“没有那个文件或目录”可以重启下服务器再试试):
原文:Docker - 离线安装 docker-compose(以CentOS系统为例)