×

操作系统

监控删除docker日志

穆琪 穆琪 发表于2023-04-28 浏览104 评论0

1.背景

docker容器在启动一段时间后应用服务会产生日志,当没有映射出来的时候,这些日志就会持续占用var下的目录空间,此时就需要清理这些日志。

2.脚本

echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
         do
     echo "clean logs : $log"
                 cat /dev/null > $log
         done
echo "======== end clean docker containers logs ========"

数据库

批量停止pg的锁表语句脚本

穆琪 穆琪 发表于2023-04-26 浏览105 评论0

1.背景

线上服务器每月都会创建下一个月的数据表的分区表,但是表在使用的时候创建分区容易造成锁表,所有自动化实现kill掉数据库中锁表的语句。

2.脚本内容

pid=`echo "SELECT * FROM pg_stat_activity where wait_event_type = 'Lock';" | docker exec -i postgres psql -p 5432 -U postgres --db 'test' | awk '{if (NR>2){print $5}}' | awk 'NR>1{print line}{line=$0}' | awk 'NR>1{print line}{line=$0}'`
echo 'Lock sql pid is '$pid
for i in $pid
do
    echo "SELECT pg_terminate_backend("$i");" | docker exec -i postgres psql -p 5432 -U postgres --db 'test'
done
pycharm创建可以自动插入的代码片段

pycharm教程

pycharm创建可以自动插入的代码片段

穆琪 穆琪 发表于2020-10-16 浏览702 评论0
在使用pycharm的时候,有时可能会写if ... else ...或者 try ... except ...这种固定的代码,所以可以在pycharm配置一下,让它可以自动展开插入。步骤:preferences→ editor → live templates然后选中python那一项:点击最右边的 + 号,选择live template添加一个新的片段,以try为例:接下来填上提示名和代码内容:填写完代码内容之后一定要选择下面的环境,点击勾选python就行(红框标起来的):点击O

数据库

PostGresql更改自增ID值

穆琪 穆琪 发表于2020-10-15 浏览738 评论0
在开发过程中,经常会自己造一点数据在数据库。这个时候id就不是那么准了,在程序后面自动插入的时候就会出现id主键冲突。解决办法就是重新设置表主键id的最大值代码如下:select setval('exp_id_seq', (select max(id) from exp));exp代表表名。