各种杂谈技巧

查看占用cpu率最高的几个进程

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

查看定时任务 crontab -l

中文乱码   -Dfile.encoding=utf-8

Element - The world's most popular Vue UI framework

Icon 图标 | Element Plus

功能 {#features} | Vite中文网

Vue.js

如何清理Docker占用的磁盘空间? - DockOne.io

docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:

docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了……所以使用之前一定要想清楚吶。

执行docker system prune -a命令之后,Docker占用的磁盘空间减少了很多

删除所有关闭的容器

docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm


删除所有dangling镜像(即无tag的镜像)

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")


删除所有dangling数据卷(即无用的Volume)

docker volume rm $(docker volume ls -qf dangling=true)

限制容器的日志大小

有一次,当我使用1与2提到的方法清理磁盘之后,发现并没有什么作用,于是,我进行了一系列分析。

在Ubuntu上,Docker的所有相关文件,包括镜像、容器等都保存在/var/lib/docker/目录中:

du -hs /var/lib/docker/
97G /var/lib/docker/


Docker竟然使用了将近100GB磁盘,这也是够了。使用du命令继续查看,可以定位到真正占用这么多磁盘的目录:

92G  /var/lib/docker/containers/a376aa694b22ee497f6fc9f7d15d943de91c853284f8f105ff5ad6c7ddae7a53


docker ps可知,Nginx容器的ID恰好为a376aa694b22,与上面的目录/var/lib/docker/containers/a376aa694b22的前缀一致:

docker ps
CONTAINER ID        IMAGE                                       COMMAND                  CREATED             STATUS              PORTS               NAMES
a376aa694b22        192.168.59.224:5000/nginx:1.12.1            "nginx -g 'daemon off"   9 weeks ago         Up 10 minutes                           nginx


因此,Nginx容器竟然占用了92GB的磁盘。进一步分析可知,真正占用磁盘空间的是Nginx的日志文件。那么这就不难理解了。我们Fundebug每天的数据请求为百万级别,那么日志数据自然非常大。

使用truncate命令,可以将Nginx容器的日志文件“清零”:

truncate -s 0 /var/lib/docker/containers/a376aa694b22ee497f6fc9f7d15d943de91c853284f8f105ff5ad6c7ddae7a53/*-json.log


当然,这个命令只是临时有作用,日志文件迟早又会涨回来。要从根本上解决问题,需要限制Nginx容器的日志文件大小。这个可以通过配置日志的max-size来实现,下面是Nginx容器的docker-compose配置文件:

nginx:
image: nginx:1.12.1
restart: always
logging:
driver: "json-file"
options:
  max-size: "5g"


重启Nginx容器之后,其日志文件的大小就被限制在5GB,再也不用担心了~

4. 重启Docker

有一次,当我清理了镜像、容器以及数据卷之后,发现磁盘空间并没有减少。根据Docker disk usage提到过的建议,我重启了Docker,发现磁盘使用率从83%降到了19%。根据高手指点,这应该是与内核3.13相关的Bug,导致Docker无法清理一些无用目录:
 

it's quite likely that for some reason when those container shutdown, docker couldn't remove the directory because the shm device was busy. This tends to happen often on 3.13 kernel. You may want to update it to the 4.4 version supported on trusty 14.04.5 LTS.


The reason it disappeared after a restart, is that daemon probably tried and succeeded to clean up left over data from stopped containers.

我查看了一下内核版本,发现真的是3.13:

uname -r
3.13.0-86-generic

# 查找"/"目录下所有大于100M的所有文件

find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr

sudo du -hs /var/lib/docker/

idea 快捷键

回到上一步  ctrl + alt + <-

回到下一步 ctrl + alt + ->

 
IDEA 
自动删除类中无用的import包    Ctrl + Alt + O
格式化代码  ctrl + alt + L 

192.168.2.185 服务器

上执行

ssh-keygen -m PEM -t rsa -b 4096  一直回车

拷贝公钥到远程服务器 :ssh-copy-id 192.168.0.229  回车输入yes

回车输入 192.168.0.229 服务器密码

119.23.107.229 服务器cat authorized_keys会看到追加的内容

npm install -d 就是npm install --save-dev
npm insatll -s 就是npm install --save
package.json 文件里面体现出来的就是,使用 --save-dev 安装的 插件,被写入到 devDependencies 域里面去,而使用 --save 安装的插件,则是被写入到 dependencies 区块里面去。
devDependencies  里面的插件只用于开发环境,不用于生产环境,而 dependencies  是需要发布到生产环境的

ubuntu开放端口

iptables -I INPUT -p tcp --dport 8081 -j ACCEPT

Windows PowerShell

set-ExecutionPolicy RemoteSigned

MySQL数据库时间不对

date -R

show variables like '%time_zone%';

set time_zone='+8:00';flush privileges;

select now();  数据库查询当前时间

或者

找到my.ini, 在mysqld 下增加 default-time-zone = '+8:00'

必须放到mysqld 下,放入其它位置无效

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数

# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

# 查看物理CPU个数

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 

或grep 'physical id' /proc/cpuinfo | sort -u | wc -l

# 查看每个物理CPU中core的个数(即核数)

cat /proc/cpuinfo| grep "cpu cores"| uniq

或者grep 'core id' /proc/cpuinfo | sort -u | wc -l

# 查看逻辑CPU的个数

cat /proc/cpuinfo| grep "processor"| wc -l

或者grep 'processor' /proc/cpuinfo | sort -u | wc -l

# 查看CPU信息(型号)cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

或者dmidecode -s processor-version

#查看内 存信息cat /proc/meminfo

Linux 好用的ssh远程终端 finalshell

cat /proc/cpuinfo| grep "cpu cores"| uniq

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

cat /proc/cpuinfo |grep "processor"|sort -u|wc -l


# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

查看每个物理CPU中core的个数
cat /proc/cpuinfo| grep "cpu cores"| uniq

查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
 

Windows杀死进程:

netstat -ano |findstr 9099

tasklist |findstr 15568

taskkill /f /t /im "进程id或者进程名称"  比如:taskkill /f /t /im 15568

选中多行代码,按住tab就会同时向右移动

选中多行代码,按住shift+tab就会同时向左移动

更新代码之后 一直按住右方向键头 就可以从上到下展开目录

 java:找不到符号 符号: 变量 log 位置

在build --compiler--- Shared build process VM options
-Djps.track.ap.dependencies=false

Maven打包时去掉项目版本号

Maven打包后,jar或war文件名里带有版本号信息,如projectname0.0.1-SNAPSHOT.jar等,怎么去掉呢?

解决办法:

打开项目pom.xml文件,在<build> </build>标签内加入如下内容:

<build>

<finalName>projectname</finalName></build>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Java对GPIB接口控制,可以使用NI-VISA库来进行控制。NI-VISA(National Instruments Virtual Instrument Software Architecture)是一种通用的VISA编程接口,可以用来控制各种类型的仪器和设备,包括GPIB、USB、以太网、串口等等。 以下是一个使用NI-VISA库来进行GPIB通信的Java示例代码: ```java import java.util.concurrent.TimeUnit; import com.sun.jna.Native; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import visa32.*; public class GPIBControl { private static final int GPIB_ADDRESS = 4; // GPIB地址 private static final int BUFFER_SIZE = 1024; // 缓冲区大小 public static void main(String[] args) { // 初始化NI-VISA库 VisaLibrary visaLibrary = (VisaLibrary) Native.loadLibrary("visa32", VisaLibrary.class); visaLibrary.viOpenDefaultRM(); // 打开GPIB设备 String deviceName = "GPIB0::" + GPIB_ADDRESS + "::INSTR"; Pointer instrument = new Memory(GpibLibrary.ViUInt32.SIZE); visaLibrary.viOpen(visaLibrary.getResourceManager(), deviceName, new GpibLibrary.ViAccessMode(GpibLibrary.VI_NO_LOCK), new GpibLibrary.ViUInt32(0), instrument); Pointer session = instrument.getPointer(0); // 设置超时时间 visaLibrary.viSetAttribute(new GpibLibrary.ViSession(session), new GpibLibrary.ViAttrState(GpibLibrary.VI_TMO_VALUE), new GpibLibrary.ViUInt32(5000)); // 写入命令 String command = "*IDN?"; visaLibrary.viWrite(new GpibLibrary.ViSession(session), command.getBytes(), new GpibLibrary.ViUInt32(command.length()), new IntByReference()); // 读取响应 byte[] buffer = new byte[BUFFER_SIZE]; visaLibrary.viRead(new GpibLibrary.ViSession(session), buffer, new GpibLibrary.ViUInt32(BUFFER_SIZE), new IntByReference()); String response = new String(buffer).trim(); System.out.println("Instrument response: " + response); // 关闭设备 visaLibrary.viClose(new GpibLibrary.ViSession(session)); visaLibrary.viClose(visaLibrary.getResourceManager()); } } ``` 在这个示例中,我们使用NI-VISA库来打开GPIB设备,设置超时时间,写入命令并读取响应。需要注意的是,GPIB_ADDRESS变量需要设置为实际的GPIB地址,BUFFER_SIZE变量可以根据需要进行调整。 希望这个示例代码能够对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值