解决线上一次inode 100%

今天我们开发服务器不能rz上传文件了,而且服务器的补全都会报错,起始以为磁盘空间不足,df 看了一下 发现空间是足够的,然后df -i 查看了下inodes,发现根目录下的inodes值使用率为100%了 一开始使用,会提示空间不足 find / -xdev -printf '%h\n' | sort | uniq -c | sort -nr -k 1 | head -30 后面觉得可能是/tmp文件太多 ls -lt /tmp | wc -l 看了一下6060154,罪魁祸首就是它了 网上其他查找占用最大的文件夹命令(未尝试) for i in /*; do echo $i; find $i | wc -l; done 若是某个文件夹下面文件比较多,使用rm *是没法使用的 使用xargs命令来删除数量比较多的文件 ls | xargs -n 10 rm -rf

2024-11-29 · 1 min · airocld

insert ignore into 导致的主键id索引不连续

原理: INSERT INTO 在执行数据插入操作时,会在数据库中对元组的主键进行检测,若没有存在,则执行插入动作,若存在,则会报错。 而INSERT IGNORE INTO命令与其不同的是,INSERT IGNORE会忽略数据库中已经存在的记录: 如果数据库没有数据,就插入新的数据;如果有数据的话就跳过这条数据。 这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。 需要说明的是,INSERT INTO和INSERT IGNORE INTO只根据“主键值”或“unique索引”进行判断,只要主键值已在数据库中存在,则认为即将插入重复记录。 两个字段: id 是主键 name是唯一索引 插入’yangqq6’时,与id10的数据唯一索引冲突了,但是消耗了主键11,所以插入’yangqq7’时id为12

2024-11-29 · 1 min · airocld

Nacos动态更改配置后导致定时任务不执行

说明: nacos服务版本:1.4.1 问题: 在定时器类中使用nacos注解动态刷新,变更配置中心的配置后,项目监听到了变更,但是会使定时器无法执行的问题。 解决方案: nacos动态配置的数据统一放到一个类中,在更新nacos配置后,配置类会出现懒加载,即访问时才加载,如果将变更的变量放到定时器类中,那么定时器就会懒加载,导致定时器无法执行! import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Configuration; /** * nacos统一动态配置类 * @author tyg * @date 2021-04-15 15:57 */ @RefreshScope @Configuration public class DynamicConfig { @Value("${demo.number:10}") public Integer number; public Integer getNumber(){ return this.number; } } 3. 定时器中调用示例: import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.Date; /** * 定时器demo * @author tyg * @date 2021-04-15 9:50 */ @Component public class DemoTask { @Resource private DynamicConfig dynamicConfig; @Scheduled(fixedDelay = 5000) public void run(){ System.out.println(new SimpleDateFormat("HH:mm:ss").format(new Date()) + " demo.number=" + dynamicConfig.getNumber()); } } ———————————————— 版权声明:本文为CSDN博主「朝如青丝·暮成雪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_26365837/article/details/115767907 ...

2024-11-29 · 1 min · airocld

@Value注解不能给静态变量直接赋值

平时使用直接在变量上加@Value注解就可以从配置文件中取到值 @Value("${tencent.totalNum}") private String totalNum; 但是当url被static修饰之后,就赋不了值。 @Value("${tencent.totalNum}") private static String totalNum; 这里是因为SpringBoot不允许/不支持把值注入到静态变量中,但是也给出了解决的方案. 3.把@Value("${tencent.totalNum}")放在静态变量的set方法上面即可,需要注意的是set方法要去掉static,有些朋友习惯性的快捷键生成set方法而没有去掉static,导致还是赋值失败。还有就是当前类要交给Spring来管理,即使用@Component及衍生注解。 private static String totalNum; // 记得去掉static @Value("${tencent.totalNum}") public void setTotalNum(String totalNum) { SyncDeviceNumUtil.totalNum= totalNum; }

2024-11-29 · 1 min · aircold