linux dns配置文件是“/etc/resolv.conf”,该配置文件用于配置DNS客户,它包含了主机的域名搜索顺序和DNS/服务器的地址,每一行包括一个关键字和一个或多个空格隔开的参数。
/etc/resolv.conf (不配置就不能域名解析)
可以配置路由器网关或者dns服务器:
nameserver 192.168.0.1
nameserver 114.114.114.114
du -sh 递归看当前目录占用空间大小。
du -sh * 递归看当前目录下各个目录或文件的大小。
df -h 看磁盘总空间,及已用空间。
和我遇到的情况一样, /var/crash应该是系统崩溃记录下来的日志。
操作系统硬件或者软件故障导致操作系统崩溃的日志记录,crash目录里面的大文件也是服务器崩溃的时候产生的主要是提供给系统管理员分析系统崩溃原因用的。
linux /var/crash目录暴增
https://www.modb.pro/db/224470
长见识了,可以这么写。pandas筛选长度
import pandas as pd
def invalid_tweets(tweets: pd.DataFrame) -> pd.DataFrame:
is_valid = tweets[‘content’].str.len() > 15
df = tweets[is_valid]
return df[[‘tweet_id’]]
Zookeeper配置文件端口相关:
#the port at which the clients will connect
clientPort是与客户端连接的端口
clientPort=2181
server.A=B:C:D
尾部新增如上配置。A为一个节点编号,如0或1或2。B为节点ip地址。C为Leader选举端口。D为数据同步端口。
https://www.kancloud.cn/zhangpn/zookeeper/1654670
kafka启动
kafka-server-start.sh $KAFKA_HOME/conf/server.properties &
Zookeeper命令
zkServer.sh start # 启动
zkServer.sh status # 查看状态
zkServer.sh stop # 停止
zkServer.sh restart # 重启
Kafka并不难学!入门、进阶、商业实战 邓杰编著(第二章)
kafka和ZooKeeper安装:
https://www.kancloud.cn/zhangpn/zookeeper/1654670
https://www.kancloud.cn/zhangpn/kafka/1658561
kafka安装:
https://kafka.apache.org/downloads
https://archive.apache.org/dist/kafka/
ZooKeeper安装:
https://zookeeper.apache.org/releases.html#download
https://archive.apache.org/dist/zookeeper/
zookeeper和kafka集群的版本适配
kafka zookeeper
kafka_2.13-2.7.0 zookeeper-3.5.8
kafka_2.13-2.6.x zookeeper-3.5.8
kafka_2.12-2.5.0 zookeeper-3.5.8
kafka_2.12-2.4.0 zookeeper-3.5.6
kafka_2.12-2.3.1 zookeeper-3.4.14
kafka_2.12-2.3.0 zookeeper-3.4.14
kafka_2.12-1.1.1 zookeeper-3.4.10
kafka_2.12-1.1.0 zookeeper-3.4.10
kafka_2.12-1.0.2 zookeeper-3.4.10
kafka_2.12-0.11.0.0 zookeeper-3.4.10
kafka_2.12-0.10.2.2 zookeeper-3.4.9
kafka_2.12-0.10.0.0 zookeeper-3.4.6
kafka_2.12-0.9.0.0 zookeeper-3.4.6
https://zhuanlan.zhihu.com/p/360095145?utm_id=0
zabbix图形化配置mysql报错:发现Database host写 localhost报错,写127.0.0.1就正常:
Please create database manually, and set the configuration parameters for connection to this database. Press “Next step” button when done.
Details Cannot connect to the database.
No such file or directory
启动服务,并开机自启: systemctl enable --now 加服务
HAVING的用法,因为count(*)不能筛选
SELECT DISTINCT version FROM
(SELECT version,COUNT(*) CT FROM test_table GROUP BY version HAVING CT > 20000) T
ORDER BY version DESC LIMIT 2
zcat 查看压缩包里面的内容
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -utest -p test
搭建kafka
https://baijiahao.baidu.com/s?id=1761361346909650797&wfr=spider&for=pc
https://blog.csdn.net/abments/article/details/128993066
https://mikechen.cc/24924.html
https://dgrt.cn/a/2261784.html?action=onClick
https://mikechen.cc/24926.html
搭建kafka:https://mikechen.cc/24924.html
确实好用,df.query
num_list = [2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 30]
df = df.query(“time_horizon in @num_list”)
crontab -l crontab -e
每6小时一次定时,覆盖式写入:
0 */6 * * * echo y | cp /home/test.config /data/test.config
不覆盖写入:
cp -n /home/test.config /data/test.config
想了一下,其实是因为用了内网穿透的原因。
mysql 报错 虽然回显是内网ip,但是我们是外网ip连的,不能因为看见是内网ip就断定是运行的内网代码; Access denied for userxxxx@内网IP’ (using password: YES)
查看端口号:
ss -an
netstat -an
lsof -i -P -n
可以使用以下命令来查看 k8s 占用的端口号:kubectl get svc
telnet 192.168.0.100 80 看端口是否开启
Trying 192.168.0.100…
Connected to 192.168.0.100.
Escape character is ‘^]’.
^]
按ctl + ]号进入telnet界面,说明连接成功
https://jingyan.baidu.com/article/63f236285a48180209ab3d4a.html
ifdown 网卡名 ifup 网卡名 好了。虽然
systemctl status network看见网络还是失败,但是网络可以用了。
不知道是不是什么冲突之类的。
https://blog.csdn.net/wuds_158/article/details/131409495
mysql
查看设置最大连接数,与已用最大连接数
show variables like ‘max_connections’;
show global status like ‘Max_used_connections’;
https://blog.csdn.net/LelemamaAnne/article/details/113585805
使用管道给cp传值:
find . -name “*.jar” | xargs -i cp {} /dir
cp后面的{}会被替换成xargs的输入
也可以使用
find . -name “*.jar” | xargs -I {} cp -r {} .
建议使用-I{}来代替 (大写i,不是小写L)
————————————————
版权声明:本文为CSDN博主「yayaqwl」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011517841/article/details/82347228
linux 获取倒数第二行数据
tail -n 2 mysql-bin.index | head -n 1
如何手动清理binlog
1.使用MySQL命令行
在MySQL命令行中,使用PURGE BINARY LOGS语句可以删除所有指定日期前创建的过期binlog日志文件。
例如,为了删除超过7天的binlog日志文件,可以运行以下命令:
PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 7 DAY);
1
2.按照binlog名称删除
#将mysql-bin.000011之前的日志清理掉
mysql> purge binary logs to ‘mysql-bin.000011’;
Query OK, 0 rows affected (0.01 sec)
1
2
3
3.按照时间删除
#删除2023-03-21 18:08:00之前的binlog日志
mysql> purge binary logs before ‘2023-03-21 18:08:00’;
Query OK, 0 rows affected, 1 warning (0.02 sec)
————————————————
版权声明:本文为CSDN博主「Clang的技术博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012899618/article/details/129790336
[mysqld]
#设置日志保留天数
expire_logs_days=7
#设置日志文件最大大小
max_binlog_size=100M
用代码实现mysql同步删,mysql的binlog格式一般设置为row,这种格式解析精准。
mysqlbinlog可以指定数据库
mysqlbinlog --database my_test_database --base64-output=decode-rows --verbose mysql-bin.001364 | grep -i -A 10 delete
正则表达式:匹配忽略大小写,加 re.I
s = ‘That’
pat = r’t’
results = re.findall(pat,s,re.I)
正则表达式
获取数字串:re.findall(“mysql-bin.(\d+)”, res)
cp -n 不要覆盖已存在的文件。(不需要交互式输出)
python的subprocess模块来执行linux命令,并获取结果。
python之subprocess模块 : import subprocess
subprocess.getstatusoutput(cmd) 执行cmd命令,返回一个元组(命令执行状态, 命令执行结果输出),其功能类似于commands.getstatusoutput()
https://blog.csdn.net/qq_43331089/article/details/124421661
git clone分支 重命名(git链接后面加 自己的命名,可以重命名来区分不同分支)
git clone --depth=1 -b my_branch_2 http://project1.git project1_my_branch_2
https://baijiahao.baidu.com/s?id=1757643389424134685&wfr=spider&for=pc
mysq查看死锁进程
select * from information_schema.innodb_trx
kill 240727
https://blog.csdn.net/David_jiahuan/article/details/91558816
https://blog.51cto.com/u_12390904/6254246
pycharm 打开文件数量设置默认10个 File --> Settings -->Editor -->General --> Editor Tabs --> Tab limit
sql语句里有单引号或者双引号之类的字符,如果不是必须的可以replace去掉:
str(e).replace(‘"’, ’ ')
sql_update = “”“update 1_test_table set is_ok= “{}” “””.format(
e)
python保存输出到文件:
import sys
f = open(‘test_log.txt’, ‘w’)
sys.stdout = f
print(‘输出输出’)
f.close()
优先级为:内置模块 > 自定义包 > 自定义模块 > 三方安装包
https://blog.csdn.net/UZDW_/article/details/131745636
git回退版本:
场景一:如果想将代码恢复到之前某个提交的版本,且那个版本之后提交的版本都不要了,就可以使用 git rest
原理: git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本
操作:
查看版本号:git log,也可以上代码托管网页上查看history,找到需要回滚的目标版本号
使用“git reset --hard 目标版本号”命令将版本回退
使用“git push -f”提交更改,此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧,用“git push -f”强制推上去。
————————————————
版权声明:本文为CSDN博主「泡泡大怪兽」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45032067/article/details/124621305
scrapy设置延时,单位秒
DOWNLOAD_DELAY=2
(pymysql.err.0perationalEmror)(206,"mySQL erver has gone away (ComectionResetEror(10854,“远程主机强迫关闭7一个现有的连接。”, None, 10054,Wone))’ 应该是单次入库太多,我修改了一下max_allowed_packet 就好了。
查看: show global variables like ‘max_allowed_packet’;
设置:set global max_allowed_packet =33554432;
影响范围:
设置太大,会使用更多内存,很容易导致丢包,无法捕捉异常大事物包SQL
设置太小,可能会导致程序报错,备份失败,也会导致频繁的收发网络报,影响系统性能
修改:一般32M足够
[Mysql] >set global max_allowed_packet =33554432;
修改配置文件:
[mysqld]
max_allowed_packet=32M
https://cloud.tencent.com/developer/article/1103836
MySQL 对大小写是否敏感,由 lower_case_table_names 参数来控制,修改此参数需要重启数据库才能生效。
lower_case_table_names = 0:表名区分大小写,且按照用户指定存储。
lower_case_table_names = 1:表不区分大小写,使用小写存储。
lower_case_table_names = 2:表不区分大小写,按照用户指定存储
又遇到一个问题:https://blog.51cto.com/u_15072920/4373675
python中,No module named ‘main.models’; ‘main’ is not a package解决方法:
将相对路径改为绝对路径:
from .bird_base import BirdBase------改为-----> from python_learning.bird_base import BirdBase
mysqldump安装:yum install mysql
对应退出的容器,用 docker start 启动。
docker run 是使用镜像创建新容器。
先编辑一下docker容器里的文件,发现容器没有编辑器:
可以通过 docker cp 解决:
方法:通过copy进行编辑
查看运行的容器:docker ps -a
选择需要编辑容器进行登陆 sudo docker exec -it 容器名 /bin/bash ,通过ls或 whereis 文件名或文件夹 进行查看需要编辑的文件的位置或者文件夹位置在哪
退出该容器内部 exit;
通过 docker cp 容器名:/etc/确认copy的文件或文件夹 /home/拷贝到的外部文件夹 把文件拷贝出来
通过 cd 拷贝到的文件夹位置,可以使用 xftp工具直接对文件夹进行编辑,或通过命令 vi vim 进行编辑
编辑完后,再通过 docker cp /home/拷贝到的外部文件夹 容器名:/etc/确认copy的文件或文件夹 拷贝回去
最后重启一下编辑过文件的容器,然后进行测试有没有生效
一个字段不小心尾部多了个空格,可以用下列sql快速去除空格:
UPDATE 表名 SET 字段名 = REPLACE(字段名, ’ ', ‘’)
https://www.yzktw.com.cn/post/650656.html
pip install 或者 pip2 install 三方库失败,一般是因为包不兼容,要指定就可以了。
https://blog.csdn.net/crazytire/article/details/125964956
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
警告:远程主机标识已更改!
这个报错主要是因为远程主机的ssh公钥发生了变化,两边不一致导致的
删除本地对应ip的在known_hosts相关信息
ssh登陆报错“IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!“问题原因及解决方法
https://huaweicloud.csdn.net/635641f3d3efff3090b5c7c7.html
在python3中,sys.maxint改为sys.maxsize.
‘dict‘ object has no attribute ‘has_key‘
已于 2022-05-08 10:35:30 修改
3378
收藏 2
分类专栏: Python 文章标签: py2 py3
版权
这个问题是py2和py3兼容性的问题
在py2中,判断key是否属于dict的写法可以是:
d={‘name’:‘abc’,‘location’:‘BeiJing’}
if d.has_key(‘location’):
print(d[‘location’])
在py3中,判断key是否属于字典的写法可以是:
d={‘name’:‘abc’,‘location’:‘BeiJing’}
if ‘location’ in d:
print(d[‘location’])
————————————————
版权声明:本文为CSDN博主「upDiff」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dlhlSC/article/details/90299500
scrapy:
https://blog.csdn.net/qq_44907926/article/details/119531324
scrapy官方文档:
https://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html
scrapy 里面的item转化为dataframe:
df = pd.DataFrame(dict(item2), index=[0])
字典转化为dataframe:
df = pd.DataFrame(mydict, index=[0])
必须先把item转为字典,再转为dataframe。
如果是单条数据,必须加 index=[0], 多条则不用。
想起以前遇到的一个关于 pd.read_excel 的问题:
import pandas as pd
from urllib.request import urlopen
url = “http://xxxxxxxxxx”
#python3要加read,py2不用(这里也是个点)
df = pd.read_excel(urlopen(url).read(),converters={‘字段1’;:str,‘字段2’:str})
如果运行报错就#Install xlrd >= 1.0.0 for Excel support Use pip or conda to
安装版本pip install xlrd==1.1.0就可以了。
原来这个报错和SQLAlchemy版本有关系
这个版本是sqlalchemy版本的是1.4.3的版本, 2.0的版本是不适用的
AttributeError: ‘Engine‘ object has no attribute ‘execute‘
https://blog.csdn.net/Deng872347348/article/details/129898331
pycharm菜单栏消失了,双击shift搜索 'menu’或者’菜单’即可显示菜单栏。
https://www.ycpai.cn/python/icrD9HxH.html
这个方法不错,拿jsonpCallback里面的json:
filter = re.findall(“(jsonpCallback.?().+",response)[0]
filter=re.findall("jQuery.?((.*?));”, content)[0]
content=response.text.replace(‘\n’,‘’).replace(‘\r’,‘’)
content = response.text.replace(‘\n’, ‘’).replace(‘\r’, ‘’).replace(’ ', ‘’)
filter=re.findall(“jQuery.?((.?));”, content)
正则匹配网页要去掉\n和\r,不然可能会匹配不上。
.* 是贪婪模式,倾向于获取最长的满足条件的字符串;
.* ?是非贪婪模式,倾向于获取最短的能满足条件的字符串。
如果json内部也有小括号的时候,括号内部用.* 贪婪匹配 :
filter=re.findall(“jQuery.?((.));”, content)
filter=re.findall(“jQuery.?((.?));”, content)
linux设置开机自启动:
在/etc/rc.local文件中添加自启动命令
测试了一下,还可以,蛮好用的
docker-compose 用pip安装:
pip install docker-compose
https://www.itbulu.com/python-setuppy-egginfo.html
mysql查询一小时内数据:
SELECT * FROM table_name WHERE date_column > DATE_SUB(NOW(), INTERVAL 1 HOUR);
看了几篇文章,发现这个最好用(就是jenkins任务一直卡着,×不掉的用命令行清理)
1、Manage Jenkins->Script Console(系统管理-工具和动作-脚本命令行)
Jenkins.instance.getItemByFullName(“清洗任务1”).getBuildByNumber(9711).delete();
清洗任务1是job名字,9711是Build号
————————————————
版权声明:本文为CSDN博主「萌翻天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40308101/article/details/125806891
要停止所有 Docker 容器,您可以运行以下命令:
docker stop$(docker ps -a -q)
1
2
这个命令会停止所有正在运行的容器,并且会忽略已经停止的容器。如果您想要删除这些容器,可以使用以下命令:
docker rm$(docker ps -a -q)
docker一条命令启动、关闭、停止、删除 所有容器
1.docker中 启动所有的容器命令
docker start $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
2.docker中 停止所有的容器命令
docker stop $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
3. docker中 删除所有的容器命令
docker rm $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
4. docker中 删除所有的镜像
docker rmi $(docker images | awk ‘{print $3}’ |tail -n +2)
5. 更新容器为开机自启
docker update --restart=always mysql #设置MySQL为开机自启
6.根据容器的状态,删除Exited状态的所有容器
sudo docker rm $(sudo docker ps -qf status=exited)
docker 出现root也无法停止、删除的问题
解决:
执行命令:
aa-remove-unknown
https://blog.csdn.net/lau_jw/article/details/126598759
原来lanproxy服务端的端口对应等配置信息在这个地方: /root/.lanproxy
又get到一个新知识zfill:
zfill的功能
为字符串定义长度,如不满足,缺少的部分用0填补
zfill的用法
用法:newstr = string.zfill(width)
参数:width新字符串希望的宽度
In [14]: name = ‘insane’
In [15]: new_name = name.zfill(10)
In [16]: print(new_name)
0000insane
————————————————
版权声明:本文为CSDN博主「Insane_Loafer」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_48978908/article/details/119189964
获取汉字首字母拼音
from pypinyin import pinyin as py, Style as py_style
person_name_py = “”.join([x[0] for x in py(‘李小白’, style=py_style.FIRST_LETTER)]).upper()
为什么requests.get(url)得到的response不能使用简洁用法 response.xpath(需要先用etree.HTML()方法过渡),而scrapy中parse方法内却能直接使用response.xpath?
requests和scrapy的response是两个类,requests的没有封装xpath方法
https://zhuanlan.zhihu.com/p/40332579
查看目录总大小
du -sh ./root
du 参数 目录
-h:单位以用户友好方式展示
-c: 统计目录文件大小
-a:显示目录下所有的文件
–time:显示目录文件修改的最后时间
–exclude:排除某个目录
-s:直接显示目录的使用大小
-BK:以KB为单位显示目录大小
-BM:以MB为单位显示目录大小
-BG:以GB为单位显示目录大小
https://baijiahao.baidu.com/s?id=1741054542770174942&wfr=spider&for=pc
docker exec -it my_ginx /bin/bash
failed to create runc console socket: mkdir /tmp/pty179331520: no space left on device: unknown
应该是磁盘空间不够了
清理docker日志,参考这篇文章
https://blog.csdn.net/WLPJLP/article/details/121371788
#!/bin/bash
echo "开始清理docker日志"
#容器的路径 默认的就是下面的,如果是自定义的docker的路径就改自己定的路径
CONTAINER_DIR=/var/lib/docker/containers
获取所有的容器日志文件
CONTAINER_LOGS=$(find $CONTAINER_DIR -name "*-json.log")
#清理每个容器的日志
for LOG in $CONTAINER_LOGS; do
LOG_FILE=${LOG##*/}
echo "容器的ID:${LOG_FILE/-json.log/} 清理的日志文件:$LOG_FILE"
cat /dev/null >"$LOG"
# 也可以使用-> echo "" >"$LOG"
done
————————————————
版权声明:本文为CSDN博主「shareloke」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/WLPJLP/article/details/121371788
https://console.cloud.tencent.com/cns
改域名对应ip。每个子域名都可以对应不同IP
好用,真方便!
https://www.runoob.com/docker/docker-compose.html
docker-compose.yml 配置文件:
使用 Compose 命令构建和运行您的应用
在测试目录中,执行以下命令来启动应用程序:
docker-compose up
如果你想在后台执行该服务可以加上 -d 参数:
docker-compose up -d
zip 命令为压缩命令,压缩后不覆盖源文件,可以压缩目录,一般后缀名为.zip用于压缩文件,其语法格式如下:
zip [选项] 文件名.zip /xxx/路径xxx/文件
1
常用参数选项如下:
-v :可视化操作,显示压缩的执行过程,默认就是可视化
-q : 静默操作,不显示指令执行过程
-r :表示递归打包包含子目录的全部内容
-d :从压缩文件内删除指定的文件
-n :n为一个数字,压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好
-e :加密压缩文件
-u :追加文件到zip压缩包中
1
2
3
4
5
6
7
演示示例:
zip -vr etc.zip /etc/ #压缩/etc/目录,压缩文件名为etc.zip
zip -d myfile.zip smart.txt #删除压缩文件中的指定文件
zip -e passwd.zip /etc/passwd #加密压缩,需要输入密码
zip -u passwd.zip mypasww.txt #追加mypasww.txt文件到压缩包中
————————————————
版权声明:本文为CSDN博主「MssGuo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MssGuo/article/details/117324818
调整服务器内核参数
① Linux 提供了 tcp_max_tw_buckets 参数,当 TIME_WAIT 的连接数量超过该参数时,新关闭的连接就不再经历 TIME_WAIT 而直接关闭:
[root@kvm-10-115-88-47 ~]# cat /proc/sys/net/ipv4/tcp_max_tw_buckets
1.sort_values()方法
sort_values(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’)
①axis 如果axis=0,那么by=“列名”; 如果axis=1,那么by=“行名”;
②ascending: True则升序,可以是[True,False],即第一字段升序,第二个降序
③inplace: 是否用排序后的数据框替换现有的数据框 ,True,或者False
④kind: 排序方法
⑤na_position : {‘first’, ‘last’}, default ‘last’,默认缺失值排在最后面
————————————————
版权声明:本文为CSDN博主「Clyde_刘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_51098806/article/details/115264798
Jenkins 时间输出:如何设置打印时间为钟表时间,而不是脚本运行时间
输出界面左边配置:
Timestamps
View as plain text
System clock time
Use browser timezone
Elapsed time
None
mysql对NULL的判断: = 和 != 运算符是不起作用的,必须使用 IS NULL 和 IS NOT NULL
mysql limit用法:
LIMIT 初始位置,记录数
其中,“初始位置”表示从哪条记录开始显示;“记录数”表示显示记录的条数。第一条记录的位置是 0,第二条记录的位置是 1。后面的记录依次类推。
注意:LIMIT 后的两个参数必须都是正整数。
比如:
select * from test limit 2,5
就是从test表里,第三条记录开始取,一共取5条记录
mysql配置文件的server-id是4字节整数,范围从0-4294967295。不能重复,可以设置为ip的末端号。
XtraBackup 环境安装
https://blog.csdn.net/A___LEi/article/details/127661509
[root@centos7 ~]# yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
[root@centos7 ~]# yum -y install percona-xtrabackup-24
[root@centos7 ~]# yum -y install qpress ##innobackupex支持压缩导出,这里安装压缩工具
[root@centos7 ~]# innobackupex -version ###如果出现如下提示表示安装成功,我这里2.4.15
xtrabackup: recognized server arguments: --server-id=11 --datadir=/data/mysql_data --tmpdir=/tmp --log_bin=bin.log --innodb_page_size=8192 --innodb_buffer_pool_size=2G --innodb_io_capacity=4000 --innodb_flush_method=O_DIRECT --innodb_undo_tablespaces=3 --innodb_log_file_size=128M --innodb_log_buffer_size=16777216
innobackupex version 2.4.15 Linux (x86_64) (revision id: 544842a)
使用物理备份恢复数据库
https://cloud.tencent.com/document/product/236/33363
下载并安装 XtraBackup 工具。
MySQL 5.6、5.7 请选择 Percona XtraBackup 2.4.6 及以上的版本,下载地址,安装介绍请参见 Percona XtraBackup 2.4 指引。
MySQL 8.0 请选择 Percona XtraBackup 8.0.22-15 及以上版本,下载地址,安装介绍请参见 Percona XtraBackup 8.0 指引。
pycharm配置add configuration
注意点:
1.打开当前项目,而不是把多个项目在一个窗口打开(注意项目路径)。
2.添加解释器环境的时候,注意选择Script path,而不是Module name。
wget 可以断点续传,真是太好了,某云下载mysql备份文件url链接只生效12小时。下载一半失败了。发现可以续上,省时间了。
只需要使用-c参数,就支持断点续传了。
wget命令格式:wget -c ‘<备份文件下载地址>’ -O <自定义文件名>.xb
发现一件事,xpath的时候,都是从1开始计数的,不是从0计数。
比如说td[1]、td[2]…
linux解压zip文件到特定目录:
unzip -d /temp test.zip
https://blog.csdn.net/weixin_44021888/article/details/126384301
把一个项目里特定几个模块使用setup打包成tar.gz,文件。然后比如说在另一个项目pip install xxx.tar.gz,就可以像安装python三方库一样,使用这个xxx项目的模块。
如何把这个 xxx.tar.gz,在该项目的容器里使用呢。
先把这个文件上传到git项目里。
在该项目的Dockerfile里写入:
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir -p /usr/src/app
ENV PYTHONPATH=/usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN pip install /usr/src/app/xxx.tar.gz
RUN pip install -r /usr/src/app/requirements.txt
就可以在打包镜像的时候,安装自己的包和python三方库了。
代码没找到指定库,原来没指定就用0号库:“Redis的默认库是0号库。用户在Redis中进行操作时,如果没有指定具体的数据库,那么默认会操作0号库
场景:应该是当for循环正常结束,则才运行else里的语句。反之,当for循环没有正常运行则,不执行else的语句。
长见识了,python 里居然有 for…else语法。
for 临时变量 in 序列:
重复执行的代码
…
else:
循环正常结束后要执行的代码
Break是终止循环,一旦遇到break就代表循环是非正常结束的,因为break是终止循环这个时候else之后的的代码是不执行的。Continue指的是退出当前一次循环继而继续下一次循环,这样continue循环是正常结束的,else之后的的代码是正常执行的。
参考文章https://blog.csdn.net/weixin_48728769/article/details/123796020
一交换机下接了两个无线路由器,现在交换机的网段是192.168.0.x。
路由器1的网段是192.168.1.x,路由器2的网段是192.168.2.x。
则路由器1与路由器2下的设备,可以访问交换机下的设备(即192.168.0.x网段)。
而交换机下的设备,不能访问路由器1和路由器2下的设备。
列如路由器2下的一windows主机192.168.2.66 可以直接通过ssh连接到交换机下的一Linux服务器192.168.0.77。
该windows主机可以ping通该Linux服务器(即在192.168.2.66机器可以ping通192.168.0.77)
但是在该Linux服务器不能ping通该windows主机(即在192.168.0.77机器不能ping通192.168.2.66)
实际工作中,经常遇到一些需要很长时间才能完成的任务,例如压缩一个40G的目录,或者复制很大的文件。这些操作耗时很长,操作人员一般需要一直等待,直到它执行完毕。否则,可能会因为电脑锁屏、服务器ssh链接断开而导致任务执行失败。
在linux系统里有一个命令,screen,可以很好地解决这个问题。可以通过screen,将执行的命令放到screen后台任务里,screen任务作为一个进程在服务器后台执行。设置好screen任务后,可以退出服务器去做其他事情,等时间差不多了,再来查看放在screen的任务。
一般情况下,只要没有人去kill你的screen任务进程,服务器也没有关机或重启操作,screen任务都会平稳运行。
screen的使用实现了长耗时任务的无人值守,解放了操作者的双手,节省了时间,是IT民工必备的技能之一。
下边简单说下screen的用法
————————————————
版权声明:本文为CSDN博主「CwSunlit」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43557605/article/details/120265864
https://blog.csdn.net/weixin_43557605/article/details/120265864
docker ps -a
看到某个容器没起来,状态 Exited (0) 2 hoours ago
这个时候,一般重启容器就可以了
docker restart 容器id或容器名称
1.dataframe筛选:
df = df[df[‘person_id’]==‘testid1234’]
2.筛选后定位:
gender=df[‘gender’].iloc[0]
因为筛选后,index不是0了,所以要加个iloc[0]来定位。
df[‘gender’][0] 定位不到。
1.axis
lambda和dropna默认都是axis=0,lambda的axis=0是列操作,dropna的axis=0是行操作。
df.apply(lambda x: test_func(x),axis=1)
df=df.dropna()
mysql DATE_FORMAT: 格式化日期
DATE_FORMAT(NOW(),‘%b %d %Y %h:%i %p’)
DATE_FORMAT(NOW(),‘%m-%d-%Y’)
DATE_FORMAT(NOW(),‘%d %b %y’)
DATE_FORMAT(NOW(),‘%d %b %Y %T:%f’)
dataframe筛选案例:
df_w_cal= df_w[df_w[‘statistic_date’]>=dt.datetime.strptime(min_statistic_date,“%Y-%m-%d”).date()]
make 编译
make install 安装
make install PREFIX=/usr/local/share/reids 安装到特定目录
make distclean 清除上次编译(为了下一次干净编译)
make install PREFIX=/usr/local/share/redis
之前使用安装包安装gcc 4.4.7,然后make编译redis 2.8.9的时候报错,猜想是不是gcc版本太低了。(其中cc链接自gcc)
cc: error trying to exec ‘cc1’: execvp: 没有那个文件或目录
手动编译指定版本gcc:
Linux 安装指定版本GCC方法:
https://blog.csdn.net/qq_33438733/article/details/79983141
https://blog.csdn.net/liboyang71/article/details/77152577
直接去/etc/yum.repos.d/CenOS-Base.repo配置yum’源,然后yum install gcc。再编译redis就可以了。
yum安装gcc是4.8.5。
(结论:要么就是gcc版本,要么就是4.4.7那个安装方式没安全。)
rpm -e 包名
rpm卸载软件
mkdir -p /usr/redis/redis-2.8.17/
-p参数,父目录不存在的时候,一并创建父目录
Python报错:
ValueError: unsupported format character ‘?’ (0x5927) at index 134
原因:一般是因为sql语句文本里有百分号%,导致不能识别是输出内容还是特殊符号。
方案:在文本百分号%后面再加个百分号%,就可以了。
向下取整 int() 函数
四舍五入round() 函数
向上取整math.ceil()
分别取整数部分和小数部分math.modf()
这个写法有意思
source_ids = ‘,’.join([“'”+x+“'” for x in df_source_id[‘source_id’].tolist()])
用内网是真的快!!!!
导出mysql文件:
nohup mysqldump --skip-lock-tables -h 192.168.1.2 -P 1314 -utest_user -p’test_password’ test_database test_biao_name >test.sql &
导入sql文件:
inux下mysql导入sql文件方法1
进入linux命令命令行下
mysql -uroot -p 回车 输入密码
source fileName.sql
注意fileName.sql要有路径名,例如:source /home/user/data/fileName.sql
我服了,我发现mysqldump命令加密码的时候,生成的sql文件不能用。。可能和首行的无效输出信息有关系。
交互式命令可以。。。。。
sed -i ‘1,nd’ 文件名 删除文件 1到n行
headers_scrapy = {
‘Content-Type’: ‘application/json’,
‘Authorization’: ‘Basic xxxxxxxxxx’,
“Accept-Language”: “zh-CN,zh;q=0.9”
}
jenkins请求头里Authorization的值是 账号:密码 然后进行base64加密后的结果,可以用来进行当jenkins爬虫的请求头
我傻了,一定不能设置DNS为8.8.8.8,这个是谷歌的DNS服务器,速度太慢了,之前只觉得好记忆,没想到这个是外网的,速度这么慢。。。。
kubectl describe pod pod_name -n namespace 看报错信息
k8s任务一直处于Pending状态,是因为yaml文件里要求资源太高,可以适当降低yaml文件里的资源要求。(request的资源就被该任务锁住了,其他任务不能用)
Warning FailedScheduling default-scheduler 0/5 nodes are available: 1 node(s) had taint {node.kubernetes.io/unreachable: }, that the pod didn’t tolerate, 1 node(s) were unschedulable, 2 Insufficient cpu, 2 Insufficient memory.
Warning FailedScheduling default-scheduler 0/5 nodes are available: 1 node(s) had taint {node.kubernetes.io/unreachable: }, that the pod didn’t tolerate, 1 node(s) were unschedulable, 2 Insufficient cpu, 2 Insufficient memory.
Warning FailedScheduling default-scheduler 0/5 nodes are available: 1 node(s) had taint {node.kubernetes.io/unreachable: }, that the pod didn’t tolerate, 1 node(s) were unschedulable, 2 Insufficient memory, 3 Insufficient cpu.