Linux删除了大日志文件,但是磁盘空间没有释放原因分析,以及解决办法
1 问题今天查看服务器磁盘空间,发现磁盘占用达到了98%,所以看了一下日志文件目录的磁盘占用情况,发现有很多的sql日志文件很大,在10G以上,所以准备清理一下,一开始准备清理60天之前的日志,后来发现,清理完了,还是不行,磁盘空间还是占用98%,但是日志文件是真的被删了,今天分享一下这个事情的原因以及解决办法。
123456789101112131415161718//查看Linux整个系统的磁盘空间命令$ df -hFilesystem Size Used Avail Use% Mounted onoverlay 251G 10G 229G 5% /tmpfs 64M 0 64M 0% /devtmpfs 993M 0 993M 0% /sys/fs/cgroupshm 64M 0 64M 0% /dev/shm//查看某个文件下所有文件的磁盘占用情况$ du -sh *0 log.2022062740K log ...
git merge之后,如何进行撤销
1 merge把分支的改动合并到分支:
12345git checkout mastergit pullgit checkout branch_agit merge mastergit push
然后再把分支的改动也合并到分支:
12345git checkout pre-mastergit pullgit checkout branch_agit merge pre-mastergit push
合并完分支的改动之后,发现的改动不是我们需要的,也就是我们需要撤销第二次合并,保留第一次合并,该如何做呢?
1git log --online //查看提交的细节,并选择需要回滚到那次commit
假如第二合并之前第一次合并之后的commit_id为qwer1234,则使用以下命令进行h回滚:
12git reset --hard <commit_id>git push --force -u origin <branch_name>
Reference
https://www.educative.io/answers/what-is-the-git-push- ...
java中接口和抽象类的区别
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。
1 抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:
1abstract void fun();
抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。
下面要注意一个问题:在《JAVA编程思想》一书中,将抽象类定义为“包含抽象方法的类”,但是后面发现如果一个类不包含抽象方法,只是用abstract修饰的话也是抽象类。也就是说抽象类不一定必须含有抽象方法。个人觉得这个属于钻牛角尖的问题吧,因为如果一个抽象类不包含任何抽象方法,为何还要设计为抽象类?所以暂且记住这个概念吧,不必去深究为什么。
123[pub ...
java中的default关键字详解
1 简介default关键字和Java中的public、private等关键字一样,都属于修饰符关键字,可以用来修饰属性、方法以及类,但是default一般用来修饰接口中的方法。
2 原因出现该关键字的原因是,由于接口在Java中定义之初,有一个缺点,那就是,如果定义了一个接口,接口中又定义了N个方法,那么某个具体的类在实现该接口时,需要实现接口中的所有方法,不管是否需要用到接口中的方法。如果接口中的某个方法被default关键字修饰了,那么具体的实现类中可以不用实现方法。
3 举例说明12345interface Person { default void show() { System.out.println("this is show"); }}
Student类可以不用实现Person接口中的show()方法。
123class Student implements Person { //可以不用实现show()方法}
3.1 解决冲突如果实现类实现了个多个接口, ...
git回滚到指定commit
某个分支如果想回到之前的某次提交(commit),可以使用下面的操作:
12$ git reset --hard <commit_id> //回滚到指commit$ git push -f origin <branch_name> //强制推送到远程分支
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
Windows Docker Desktop 无法启动报错 Docker Desktop is shutting down 的可能解决办法
之前docker都可以正常启动的,后来就无法启动了,且一直报错 Docker Desktop is shutting down。
网上查了一下,发现一个可能的解决办法,删除 AppData\Roaming\Docker\settings.json,然后就能正常启动。不过我看了一下 docker 的启动日志,发现有个叫 locked-directories 的文件好像有点问题,所以我索性直接把整个 AppData\Roaming\Docker 目录删了,然后立刻就好了……
这里还有一些其他的解决方案,也供参考:https://forums.docker.com/t/solved-docker-failed-to-start-docker-desktop-for-windows/106976/5————————————————版权声明:本文为CSDN博主「元无心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/HermitSun/article/details/123523768
写在最后欢迎大家关注鄙 ...
a java bug about long type
代码:
123456789101112131415161718192021222324public class Per { Long target; public Long getTarget() { return target; } @Override public String toString() { return "Per{" + "target=" + target + '}'; } public void setTarget(Long target) { this.target = target; } public static void main(String[] args) throws InterruptedException { Per p ...
Git 修改已提交 commit 的信息
1 使用背景在使用git的时候,经常会用到一个命令,那就是git commit -m 'msg',但是这个msg还是有要求的,那就是在push代码的时候,msg不能少于5个字符(中英文都算一个字符),但是在执行git commit的时候,这个msg是可以写任意个字符的,也就是说当你commit的时候,没有写够5个字符,那么在push的时候,就会提示不能push,所以就需要用到修改已提交 commit 的信息。
2 方法2.1 修改最后一次提交 commit 的信息12345678# 修改最近提交的 commit 信息$ git commit --amend --message="modify message by daodaotest" --author="jiangliheng <jiang_liheng@163.com>"# 仅修改 message 信息$ git commit --amend --message="modify message by daodaotest"# 仅修改 autho ...
php上传文件
在PHP中,只需要通过几行代码,就能完成上传单个和多个文件的处理。
PHP文件上传功能允许上传二进制和文本文件。 此外,您可以通过PHP身份验证和文件操作功能完全控制要上传的文件。
1 PHP $_FILESPHP全局$_FILES包含文件的所有信息。 在$_FILES全局变量的帮助下,我们可以得到文件名,文件类型,文件大小,临时文件名和与文件相关的错误。
这里,我们假设文件名是filename。请参考下表 -
变量名称
描述
$_FILES['filename']['name']
返回文件名称
$_FILES['filename']['type']
返回文件的MIME类型
$_FILES['filename']['size']
返回文件的大小(以字节为单位)
$_FILES['filename']['tmp_name']
返回存储在服务器上的文件的临时文件名。
$_FILES['filename']['er ...
phh中的$和$$的区别,以及引用&的用法?
1 $和$$定义$var(一个美元)是一个正常变量,名称为:var,存储任何值,如:string,integer,float等。$$var(两个美元)是一个引用变量,用于存储$var的值。为了更好地理解$和$$之间的区别,下面来看看一些例子。
2 示例2.1 示例11234567<?php $x = "abc"; $$x = 200; echo $x."<br/>"; echo $$x."<br/>"; echo $abc;
运行结果:abc200200
在上面的例子中,我们为变量x赋值为:abc。引用变量$$x的值分配为200。现在我们打印出变量:$x,$$x和$abc。由此可以看出:$$x和$abc的值是相同的,即:因为 $x的值为abc,所以 $$x(${$x})计算后为$abc。
2.2 示例212345678910<?php$name = "Cat";${$name} = "Dog"; ...