飞行员初级课程

在紧急情况中,飞行员的首要任务事保持飞机飞行。相比乘客与飞行安全着陆,故障定位和排查是次要目标。

记住初心

世界本来就浮躁,不影响别人,别人就来影响你;不记住自己的初心,迟早被虚无缥缈的浮躁所吞噬。

Python3 https证书有效期

#!/usr/bin/env python3
# -*-coding:utf8-*-

import re
import time
import subprocess
from datetime import datetime
from io import StringIO

def main(domain):
f = StringIO()
comm = f"curl -Ivs https://{domain} --connect-timeout 10"

result = subprocess.getstatusoutput(comm)
f.write(result[1])

m = re.search('start date: (.*?)\n.*?expire date: (.*?)\n.*?common name: (.*?)\n.*?issuer: CN=(.*?)\n', f.getvalue(), re.S)
start_date = m.group(1)
expire_date = m.group(2)
common_name = m.group(3)
issuer = m.group(4)

# time 字符串转时间数组
start_date = time.strptime(start_date, "%b %d %H:%M:%S %Y GMT")
start_date_st = time.strftime("%Y-%m-%d %H:%M:%S", start_date)
# datetime 字符串转时间数组
expire_date = datetime.strptime(expire_date, "%b %d %H:%M:%S %Y GMT")
expire_date_st = datetime.strftime(expire_date,"%Y-%m-%d %H:%M:%S")

# 剩余天数
remaining = (expire_date-datetime.now()).days

print('域名:', domain)
print('通用名:', common_name)
print('开始时间:', start_date_st)
print('到期时间:', expire_date_st)
print(f'剩余时间: {remaining}天')
print('颁发机构:', issuer)
print(remaining)
print('*'*30)

time.sleep(0.5)

if __name__ == "__main__":

domains = ['www.baidu.com']

for domain in domains:
main(domain)

调用jquery时,注意路径的引用

<!DOCTYPE html><html><head>
<meta charset="UTF-8">
<script src="/jquery.js"></script> //注意有/,加载效果失败
<script type="text/javascript">
$(document).ready(function(){
$(".flip").click(function(){
$(".panel").slideToggle("slow");
});
});
</script>
<style type="text/css">
div.panel,p.flip
{
margin:0px;
padding:5px;
text-align:center;
background:#e5eecc;
border:solid 1px #c3c3c3;
}
div.panel
{
height:120px;
display:none;
}
</style>
</head>
<body>
<div class="panel">
<p>学习前端课程</p>
<p>深入浅出前端系列</p>
</div>
<p class="flip">请点击这里</p>
</body>
</html>
<!DOCTYPE html><html><head>
<meta charset="UTF-8">
<script src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".flip").click(function(){
$(".panel").slideToggle("slow");
});
});
</script>
<style type="text/css">
div.panel,p.flip
{
margin:0px;
padding:5px;
text-align:center;
background:#e5eecc;
border:solid 1px #c3c3c3;
}
div.panel
{
height:120px;
display:none;
}
</style>
</head>
<body>
<div class="panel">
<p>学习前端课程</p>
<p>深入浅出前端系列</p>
</div>
<p class="flip">请点击这里</p>
</body>
</html>
点击后上下切换

前端测试

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>New tec</title>
</head>
<body>
<div id="header">
<h1>四川省</h1>
</div>
<div id="nav">
成都<br>
德阳<br>
绵阳<br>
遂宁<br>
</div>
<div id="section">
<h1>CD</h1>
<p>
成都历史悠久,有“天府之国”、“蜀中江南”、“蜀中苏杭”的美称。据史书记载,大约在公元前5世纪中叶的古蜀国开明王朝九世时将都城从广都樊乡(双流)迁往成都,构筑城池。 关于成都一名的来历,据《太平环宇记》记载,是借用西周建都的历史经过,取周王迁岐“一年而所居成聚,二年成邑,三年成都”而得名成都。蜀语“成都”二字的读音就是蜀都。 “‘成’者‘毕也’‘终也’”,成都的含义“就是蜀国‘终了的都邑’,或者说‘最后的都邑’。五代十国时,后蜀皇帝孟昶偏爱芙蓉花,命百姓在城墙上种植芙蓉树,花开时节, 成都“四十里为锦绣”,故成都又被称为芙蓉城,简称“蓉城”。2001年2月8日出土的金沙遗址,已经将成都建城历史从公元前311年提前到了公元前611年。
</p>
<p>

</div>
<div id="footer">
Copyright www.tcc.pub
</div>
</body>
<style>
#header {
background-color:darkblue;
color:white;
text-align:center;
padding:10px;
}
#nav {
line-height:30px;
background-color:#eeeeee;
height:400px;
width:100px;
float:left;
padding:20px;
}
#section {
width:350px;
float:left;
padding:10px;
}
#footer {
background-color:black;
color:white;
clear:both;
text-align:center;
padding:5px;
}
</style>
</html>

创业者

创业者不一定是CEO(首席执行官),创业者可以是一个产品经理,创业者可以是一个程序员,创业者可以是一个设计师,创业者可以是一个产品经理,只要你拥有这个创业的梦想

python3天数转日期

!/usr/bin/env python3
– coding:utf-8 –
import time
import os
import sys
print()
input_num_value = int(input(“请输入转换的天数:”))
time_convert_value = input_num_value * 24 * 60 * 60 #天转秒
time_cur_value = time.time() #当前日期的秒
time_convert_mes = time_cur_value + time_convert_value #求秒+当前秒=和秒
time_day = time.gmtime(time_convert_mes) #转换日期
time_day_format = time.strftime(“%Y-%m-%d %H:%M:%S”,time.gmtime(time_convert_mes))
print()
print(‘天数转换后的年月日: {}’.format(time_day_format))
print()

FastDFS文件同步机制简介

   FastDFS文件同步采用binlog异步复制方式。storage server使用binlog文件记录文件上传、删除等操作,根据binlog进行文件同步。binlog中只记录文件ID和操作,不记录文件内容。下面给出几行binlog文件内容示例:

1572660675 C M00/00/00/oYYBAF285cOIHiVCAACI-7zX1qUAAAAVgAACC8AAIkT490.txt

1572660827 c M00/00/00/oYYBAF285luIK8jCAAAJeheau6AAAAAVgABI-cAAAmS021.xml

1572660911 D M00/00/00/oYYBAF285cOIHiVCAACI-7zX1qUAAAAVgAACC8AAIkT490.txt

1572660967 d M00/00/00/oYYBAF285luIK8jCAAAJeheau6AAAAAVgABI-cAAAmS021.xml

  从上面可以看到,binlog文件有三列,依次为时间戳、操作类型和文件ID(不带group名称)。

  文件操作类型采用单个字母编码,其中源头操作用大写字母表示,被同步的操作为对应的小写字母。文件操作字母含义如下:

    C :上传文件(upload)

    D:删除文件(delete)

    A:追加文件(append)

    M:部分文件更新(modify)

    U:整个文件更新(set metadata)

    T:截断文件(truncate)

    L:创建符号链接(文件去重功能,相同内容只保存一份)

  同组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行。文件同步只在同组内的storage server之间进行,采用push方式,即源头服务器同步给本组的其他存储服务器。对于同组的其他storage server,一台storage server分别启动一个线程进行文件同步。

  文件同步采用增量方式,记录已同步的位置到mark文件中。mark文件存放路径为 $base_path/data/sync/。mark文件内容示例:

binlog_index=3

binlog_offset=382

need_sync_old=1

sync_old_done=1

until_timestamp=1571976211

scan_row_count=2033425

sync_row_count=2033417

  采用binlog的异步复制方式,必然存在同步延迟的问题,比如mysql的主从数据同步。下一篇文章将介绍FastDFS是如何解决文件异步复制带来的延迟问题,敬请期待。

  最后留给大家一个问题,为什么binlog记录的文件操作类型有大小写的两套呢(如C和c、D和d等)?