ec2/ecs resize2fs

If you have used a snapshot to create the EBS or with certain AMIs you will need to extend the disk (xvda), extend the partition (xvda1), then extend the filesystem (/).

If I'm reading this correctly, your disk looks like this:

/dev/xvda
|__/dev/xvda1__|______________ Free space______________|

It needs to look like this:

/dev/xvda
|______________________/dev/xvda1______________________|

After that, running resize2fs will grow into that new space within xvda1, using fdisk we can increase the block size by deleting and creating it again and making the partition bootable. all it requires is a reboot. In most cases it shouldn't effect your data if you use same start cylinder but Note that any mistake in recreating the partion will result in losing all data and/or the server will not reboot. I would recommend doing this as the first step on a newly created instance. Otherwise take a snapshot of your EC2 EBS Storage/etc.

I have marked the steps with <<#>> in the block below, so the are not a part of the command. You need root permissions, so do a "sudo sh" if you are not root.

<<1>> Look at the filesystem, it is 6G
<<2>> Look at the disk and the partition, the disk is 21.5 GB but the partition is 6 GB (6291456 blocks)
<<3>> Start fdisk for that disk (xvda, so not the partition xvda1)
<<4>> Switch to sector display.
<<5>> Print the partition(s), and remember the start sector (2048 in the example).
<<6>> Delete the partition.
<<7>> Create a new partition.
<<8>> Make it primary.
<<9>> First partition.
<<10>> Enter the old start sector, do NOT make any typo here!!! (2048 in the example) 
<<11>> Hit enter to accept the default (this is the remainder of the disk)
<<12>> Print the changes and make sure the start sector is ok, if not restart at <<6>>
<<13>> Make the partition bootable. do NOT forget this!!!
<<14>> Enter your partition number (1 in the example)
<<15>> Write the partition info back, this will end the fdisk session.
<<16>> Reboot the server, and wait for it to come up (this may take longer than usual).
<<17>> Verify the filesystem size.
<<18>> If the filesystem is not around 20Gb as expected, you can use this command.


# df -h  <<1>>

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      6.0G  2.0G  3.7G  35% / 
tmpfs            15G     0   15G   0% /dev/shm

# fdisk -l  <<2>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 cylinders
Units = cylinders of 1649 * 512 = 844288 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           2        7632     6291456   83  Linux

# fdisk /dev/xvda  <<3>>

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): u  <<4>>
Changing display/entry units to sectors

Command (m for help): p  <<5>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *        2048    12584959     6291456   83  Linux

Command (m for help): d  <<6>>
Selected partition 1

Command (m for help): n  <<7>>
Command action
   e   extended
   p   primary partition (1-4)
p  <<8>>
Partition number (1-4): 1  <<9>>
First sector (17-41943039, default 17): 2048  <<10>>
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): <<11>>
Using default value 41943039

Command (m for help): p <<12>>

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
97 heads, 17 sectors/track, 25435 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b587

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1            2048    41943039    20970496   83  Linux

Command (m for help): a  <<13>>
Partition number (1-4): 1  <<14>>


Command (m for help): w  <<15>>
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: ...
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

# reboot  <<16>>



# df -h  <<17>>
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  2.0G   17G  11% / 
tmpfs            15G     0   15G   0% /dev/shm

# resize2fs /dev/xvda1  <<18>>
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvda1 to 5242624 (4k) blocks.
The filesystem on /dev/xvda1 is now 5242624 blocks long.

root@vs120 [~]#  df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  7.8G   11G  42% /
tmpfs           498M     0  498M   0% /dev/shm
/usr/tmpDSK     399M   11M  368M   3% /tmp
root@vs120 [~]#
# xfs
xfs_growfs /dev/xvda1

Use the lsblk command to list the block devices attached to your instance. The example below shows three volumes: /dev/xvda, /dev/xvdb, and /dev/xvdf.

[ec2-user ~]$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  30G  0 disk
└─xvda1 202:1    0  30G  0 part /
xvdb    202:16   0  30G  0 disk /mnt
xvdf    202:80   0  35G  0 disk
└─xvdf1 202:81   0   8G  0 part

links:

https://serverfault.com/questions/414983/ec2-drive-not-ebs-volume-size

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html

.

发表在 linux | ec2/ecs resize2fs已关闭评论

openldap acl

1、语法语法
access to what:
by who access control

其中,access to指示启用访问控制,上句大致可以理解为:
access to <对什么目标进行控制>[by <作用于哪些访问者> <授予什么样的访问权限><采取什么样的匹配控制动作>]+

2、控制目标 what
这一域主要是实现对ACL应用对象的指定,对象可以是记录和属性。选择ACL目标记录的方法一般有两种:DN和filter,语法为:what ::= * | [dn[.basic-style]=regex | dn.scope-style=DN] [filter=ldapfilter] [attrs=]

2.1 指定所有的记录如下:
access to *

2.2 通过DN指定语法如下:
1)、access to dn.(regex|exact)=regex
第一种方法是使用正则表达式(dn.regex)或精确匹配(dn.style)的方式来匹配符合条件的记录(这个好像不像想象的那么简单,实现起来颇为费脑筋),例如:
access to dn="^.,uid=([^,]+),ou=users,(.)$"

2)、access to dn.(base|one|subtree|children)=DN("ou=People,dc=koudai,dc=com")
第二种方法通过“区域”选择的方法进行目标记录的选取,对以指定的DN开始的目录树区域进行目标记录匹配。匹配区域的方式共有四种: 
base 只匹配DN本身一条记录 
one 匹配以给定DN为父目录的所有记录 
subtree 匹配以给定DN为根目录的所有子树内的记录 
children 匹配给定DN下的所有记录,但应该不包括以DN直接命名的那条记录(参见例子的解释)

2.3 通过filter指定过滤规则进行记录过虑,语法如下:
access to filter=ldap filter
其中filter指定的为search的过滤规则,这类同于linux系统中grep的匹配方式。如:

access to filter=(objectClass=sambaSamAccount)
也可以结合使用DN和filter进行记录的匹配,例如:
access to dn.subtree=”ou=users,dc=mydomain,dc=org” filter=(objectClass=posixAccount)

2.4 通过attrs选取匹配记录语法:
access to attrs=uid,uidNumber,gidNumber
也可以结合使用DN和attrs进行记录的匹配,例如:

access to dn.subtree="ou=users,dc=mydomain,dc=org" attrs=uid

3、被用来授权的访问者的指定who
指定被授权的用户范围的方法大致有以下几种:

* 所有的访问者,包括匿名的用户 
anonymous 非认证的匿名用户 
users 认证的用户 
self 目标记录的用户自身 
dn[.<basic-style>]=<regex> 在指定目录内匹配正则表达式的用户 
dn.<scope-style>=<DN> 指定DN内的用户

4、被授予的权限access
当选取好ACL作用的目标记录并选取好用户范围后,就该给这些用户授予他们应该得到的权限了。大致的权限(由低到高)有以下几类:

none 无权限,即拒绝访问 
auth 访问bind(认证)设置的权限;前提是需要用户提交一个DN形式的用户名并能通过认证 
compare 比较属性的权限;(例如:对照查看某用户的telephoneNumber值是不是158 8888 8888),但并不具有搜索的权限 
search 利用过虑条件进行搜索的权限,但这并不一定具有可读取搜索结果的权限 
read 读取搜索结果的权限 
write 更改记录属性值的权限

5、采取什么样的匹配控制动作control
在进行记录的匹配时,如果有多条规则存在,那么在第一次匹配产生后是否还进行后续的匹配或采取其它的动作将取决于此项的设置;控制方式共有以下三种:

stop 这个是默认值,这表示在一次匹配产生后将不再进行下一个匹配,所有后续的匹配将会停止。 
continue 无论匹配是否已经发生,继续进行直到所有的规则全部进行完匹配检查 
break 一个匹配发生后,跳出当前的子句进行后一个子句的检查

links:

http://www.openldap.org/doc/admin24/access-control.html

发表在 linux | openldap acl已关闭评论

用户、组和容器的 LDAP 过滤器和属性案例

摘自: https://docs.oracle.com/html/E35191_01/ldap-filters-attrs-users.html

C.2. 用户、组和容器的 LDAP 过滤器和属性

C.2.1. 用户、组和容器的默认 LDAP 过滤器和属性
C.2.2. 用户、组和容器的 Active Directory 设置
C.2.3. 用户、组和容器的 Oracle Directory Server Enterprise Edition 设置
C.2.4. 用户、组和容器的 OpenDS 设置
C.2.5. 用户、组和容器的 OpenLDAP 设置
C.2.6. 用户、组和容器的 Novell eDirectory 设置

Oracle VDI Manager 名称 CLI 属性名称 说明
用户过滤器 ldap.user.object.filter 用于标识用户类型对象的 LDAP 过滤器。
用户搜索过滤器 ldap.user.search.filter 用于根据搜索条件搜索用户的 LDAP 过滤器。可以使用 user-search 命令或在 Oracle VDI Manager 中完成用户搜索。$SEARCH_STRING 是搜索条件的占位符。
用户 ID 属性 ldap.userid.attributes 以逗号分隔的 LDAP 属性列表,其中存储用户对象的用户 ID 值。用于在给定用户 ID 的情况下查找用户。
用户成员属性 ldap.user.member.attributes 某一用户对象的以逗号分隔的 LDAP 属性列表,其中存储该用户所属的组。
用户短属性 ldap.user.short.attributes 某一用户对象可在组成员属性中使用的 LDAP 属性的逗号分隔列表。
组过滤器 ldap.group.object.filter 用于标识组类型对象的 LDAP 过滤器。
组搜索过滤器 ldap.group.search.filter 用于根据搜索条件搜索组的 LDAP 过滤器。可以使用 user-search 命令或者在 Oracle VDI Manager 中执行对组的搜索。$SEARCH_STRING 是搜索条件的占位符。
组成员属性 ldap.group.member.attributes 某一组对象的以逗号分隔的 LDAP 属性列表,其中存储该组的用户成员。
组短属性 ldap.group.short.attributes 可以在用户成员属性中使用的组对象上的 LDAP 属性的逗号分隔列表。此属性通常用于特定于 Active Directory 的主要组成员关系。
容器对象过滤器 ldap.container.object.filter 用于标识容器类型对象的 LDAP 过滤器。在 Oracle VDI Manager 中,可将容器选作定制组过滤器的根。
容器搜索过滤器 ldap.container.search.filter 在为定制组过滤器选择根时,Oracle VDI Manager 用来根据搜索条件搜索容器的 LDAP 过滤器。$SEARCH_STRING 是搜索条件的占位符。
默认属性 ldap.default.attributes 查找对象时在高速缓存中加载的以逗号分隔的 LDAP 属性的列表。其中应包含其他过滤器和属性列表中使用的所有属性。

C.2.1. 用户、组和容器的默认 LDAP 过滤器和属性

下表包含用户、组和容器的默认 LDAP 过滤器和属性。

Oracle VDI Manager 名称 默认值
用户过滤器 (&(|(objectclass=user)(objectclass=person)(objectclass=inetOrgPerson) (objectclass=organizationalPerson))(!(objectclass=computer)))
用户搜索过滤器 (|(cn=$SEARCH_STRING)(uid=$SEARCH_STRING) (userPrincipalName=$SEARCH_STRING)(mail=$SEARCH_STRING))
用户 ID 属性 uid,sAMAccountName,userPrincipalName,mail
用户成员属性 memberof,primaryGroupID
用户短属性
组过滤器 (|(objectclass=group)(objectclass=groupofnames) (objectclass=groupofuniquenames))
组搜索过滤器 (|(dc=$SEARCH_STRING)(o=$SEARCH_STRING)(ou=$SEARCH_STRING) (cn=$SEARCH_STRING)(uid=$SEARCH_STRING)(mail=$SEARCH_STRING))
组成员属性 member,uniquemember
组短属性 primaryGroupToken
容器对象过滤器 (|(objectclass=domain)(objectclass=organization) (objectclass=organizationalUnit)(objectclass=container))
容器搜索过滤器 (|(cn=$SEARCH_STRING)(dc=$SEARCH_STRING)(ou=$SEARCH_STRING))
默认属性 dc,o,ou,cn,uid,mail,member,uniquemember,memberof,sAMAccountName, primaryGroupToken,primaryGroupID

C.2.2. 用户、组和容器的 Active Directory 设置

下表包含用户、组和容器的 Active Directory 的建议设置。

如果您对用户标识使用 userPrincipalName 属性或 mail 属性,请在以下设置中使用此属性而不是 sAMAccountName

Oracle VDI Manager 名称 建议设置
用户过滤器 (&(objectclass=user)(!(objectclass=computer)))
用户搜索过滤器 (|(cn=$SEARCH_STRING)(sAMAccountName=$SEARCH_STRING))
用户 ID 属性 sAMAccountName
用户成员属性 memberof,primaryGroupID
用户短属性
组过滤器 (objectclass=group)
组搜索过滤器 (cn=$SEARCH_STRING)
组成员属性 member
组短属性 primaryGroupToken
容器对象过滤器 (objectclass=container)
容器搜索过滤器 (cn=$SEARCH_STRING)
默认属性 cn,member,memberof,sAMAccountName,primaryGroupToken,primaryGroupID

C.2.3. 用户、组和容器的 Oracle Directory Server Enterprise Edition 设置

下表包含用户、组和容器的 Oracle Directory Server Enterprise Edition 的建议设置。

Oracle VDI Manager 名称 建议设置
用户过滤器 (objectclass=person)
用户搜索过滤器 (|(cn=$SEARCH_STRING)(uid=$SEARCH_STRING))
用户 ID 属性 uid
用户成员属性 memberof
用户短属性
组过滤器 (objectclass=groupofuniquenames)
组搜索过滤器 (cn=$SEARCH_STRING)
组成员属性 uniquemember
组短属性
容器对象过滤器 (|(objectclass=domain)(objectclass=organizationalUnit))
容器搜索过滤器 (|(dc=$SEARCH_STRING)(ou=$SEARCH_STRING))
默认属性 dc,ou,cn,uid,uniquemember,memberof

C.2.4. 用户、组和容器的 OpenDS 设置

下表包含用户、组和容器的 OpenDS 的建议设置。

Oracle VDI Manager 名称 建议设置
用户过滤器 (objectclass=person)
用户搜索过滤器 (|(cn=$SEARCH_STRING)(uid=$SEARCH_STRING))
用户 ID 属性 uid
用户成员属性 memberof
用户短属性
组过滤器 (objectclass=groupofuniquenames)
组搜索过滤器 (cn=$SEARCH_STRING)
组成员属性 uniquemember
组短属性
容器对象过滤器 (|(objectclass=domain)(objectclass=organizationalUnit))
容器搜索过滤器 (|(dc=$SEARCH_STRING)(ou=$SEARCH_STRING))
默认属性 dc,ou,cn,uid,uniquemember,memberof

C.2.5. 用户、组和容器的 OpenLDAP 设置

下表包含用户、组和容器的 OpenLDAP 的建议设置。

Oracle VDI Manager 名称 建议设置
用户过滤器 从默认过滤器中删除 (!(objectclass=computer))。改用 (objectclass=person)
用户搜索过滤器 (|(cn=$SEARCH_STRING)(uid=$SEARCH_STRING))
用户 ID 属性 uid
用户成员属性 memberof
用户短属性
组过滤器 (objectclass=groupofnames)
组搜索过滤器 (cn=$SEARCH_STRING)
组成员属性 member
组短属性
容器对象过滤器
容器搜索过滤器
默认属性 cn,uid,member,memberof

C.2.6. 用户、组和容器的 Novell eDirectory 设置

下表包含用户、组和容器的 Active Directory 的建议设置。

Oracle VDI Manager 名称 建议设置
用户过滤器 您必须从默认过滤器中删除 (!(objectclass=computer))。建议设置为 (objectclass=person)
用户搜索过滤器 (|(cn=$SEARCH_STRING)(uid=$SEARCH_STRING)(givenName=$SEARCH_STRING))
用户 ID 属性 givenName,cn,uid
用户成员属性 groupMembership
用户短属性
组过滤器 (|(objectclass=group)(objectclass=groupofnames)(objectclass=groupofuniquenames))
组搜索过滤器
组成员属性 member,uniquemember
组短属性
容器对象过滤器 (objectclass=organizationalUnit)
容器搜索过滤器
默认属性 cn,uid,givenName,groupmembership,member,uniquemember
发表在 article | 用户、组和容器的 LDAP 过滤器和属性案例已关闭评论

Apache Bench (ab)

yum install -y httpd-tools

ab -c 10 -n 100 http://www.example.com/index.php

-c10 表示并发用户数为10
-n100 表示请求总数为100

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.199.85 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software:
Server Hostname: 192.168.199.85
Server Port: 3814

Document Path: /portals/index
Document Length: 11999 bytes HTTP响应数据的正文长度

Concurrency Level: 200
Time taken for tests: 2.132 seconds 所有这些请求处理完成所花费的时间 
Complete requests: 1000 完成请求数 
Failed requests: 0 失败请求数 
Write errors: 0
Total transferred: 12136000 bytes 网络总传输量 
HTML transferred: 11999000 bytes HTML内容传输量
Requests per second: 469.10 #/sec 吞吐量-每秒请求数
Time per request: 426.350 ms 服务器收到请求,响应页面要花费的时间
Time per request: 2.132 [ms] (mean, across all concurrent requests) 并发的每个请求平均消耗时间
Transfer rate: 5559.55 [Kbytes/sec] received 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

Connection Times (ms)
min mean[+/-sd] median max
Connect: 1 26 136.7 1 1006
Processing: 6 364 295.5 297 1741
Waiting: 3 353 297.1 286 1740
Total: 7 391 330.3 308 1980


Percentage of the requests served within a certain time (ms)
50% 308 50% 的用户响应时间小于 308 毫秒 
66% 450 80 % 的用户响应时间小于 450 毫秒
75% 552
80% 618
90% 832
95% 1028
98% 1354
99% 1650
100% 1980 (longest request) 最大的响应时间小于 2000 毫秒 

links:
http://httpd.apache.org/docs/2.4/programs/ab.html

发表在 article | Apache Bench (ab)已关闭评论

Top-Level Domain (TLD)

Generic Top-level Domains (gTLDs)

Generic top-level domains are the common domain names you're likely most familiar with. These are open for anyone to register domain names under:

  • .com (commercial)
  • .org (organization)
  • .net (network)
  • .name (name)
  • .biz (business)
  • .info (information)

Additional gTLDs are available that are called sponsored top-level domains, and are considered restricted because certain guidelines must be met before they can be registered:

  • .int (international): Used by international organizations for treaty-related purposes, and requires a United Nations registration number
  • .edu (education): Limited to educational institutions only
  • .gov (government): Limited to U.S. governmental entities only
  • .mil (military):  Limited to the U.S. military only
  • .jobs (employment): Must be registered under the legal name of a company or organization
  • .mobi (mobile): Might have to adhere to mobile-compatible guidelines
  • .tel (Telnic): Limited to hosting related to contact information, not websites

Country Code Top-level Domains (ccTLD)

Countries and territories have a top-level domain name available that's based on the country's two-letter ISO code. Here are some examples of popular country code top-level domains:

  • .us: United States
  • .ca: Canada
  • .nl: Netherlands
  • .de: Germany
  • .fr: France
  • .ch: Switzerland
  • .cn: China
  • .in: India
  • .ru: Russia
  • .mx: Mexico
  • .jp: Japan
  • .br: Brazil

The official, exhaustive list of every generic top-level domain and country code top-level domain is listed by the Internet Assigned Numbers Authority (IANA).

CodeCountry name (using title case)YearccTLDISO 3166-2
ADAndorra1974.adISO 3166-2:AD
AEUnited Arab Emirates1974.aeISO 3166-2:AE
AFAfghanistan1974.afISO 3166-2:AF
AGAntigua and Barbuda1974.agISO 3166-2:AG
AIAnguilla1985.aiISO 3166-2:AI
ALAlbania1974.alISO 3166-2:AL
AMArmenia1992.amISO 3166-2:AM
AOAngola1974.aoISO 3166-2:AO
AQAntarctica1974.aqISO 3166-2:AQ
ARArgentina1974.arISO 3166-2:AR
ASAmerican Samoa1974.asISO 3166-2:AS
ATAustria1974.atISO 3166-2:AT
AUAustralia1974.auISO 3166-2:AU
AWAruba1986.awISO 3166-2:AW
AXÅland Islands2004.axISO 3166-2:AX
AZAzerbaijan1992.azISO 3166-2:AZ
BABosnia and Herzegovina1992.baISO 3166-2:BA
BBBarbados1974.bbISO 3166-2:BB
BDBangladesh1974.bdISO 3166-2:BD
BEBelgium1974.beISO 3166-2:BE
BFBurkina Faso1984.bfISO 3166-2:BF
BGBulgaria1974.bgISO 3166-2:BG
BHBahrain1974.bhISO 3166-2:BH
BIBurundi1974.biISO 3166-2:BI
BJBenin1977.bjISO 3166-2:BJ
BLSaint Barthélemy2007.blISO 3166-2:BL
BMBermuda1974.bmISO 3166-2:BM
BNBrunei Darussalam1974.bnISO 3166-2:BN
BOBolivia (Plurinational State of)1974.boISO 3166-2:BO
BQBonaire, Sint Eustatius and Saba2010.bqISO 3166-2:BQ
BRBrazil1974.brISO 3166-2:BR
BSBahamas1974.bsISO 3166-2:BS
BTBhutan1974.btISO 3166-2:BT
BVBouvet Island1974.bvISO 3166-2:BV
BWBotswana1974.bwISO 3166-2:BW
BYBelarus1974.byISO 3166-2:BY
BZBelize1974.bzISO 3166-2:BZ
CACanada1974.caISO 3166-2:CA
CCCocos (Keeling) Islands1974.ccISO 3166-2:CC
CDCongo, Democratic Republic of the1997.cdISO 3166-2:CD
CFCentral African Republic1974.cfISO 3166-2:CF
CGCongo1974.cgISO 3166-2:CG
CHSwitzerland1974.chISO 3166-2:CH
CICôte d'Ivoire1974.ciISO 3166-2:CI
CKCook Islands1974.ckISO 3166-2:CK
CLChile1974.clISO 3166-2:CL
CMCameroon1974.cmISO 3166-2:CM
CNChina1974.cnISO 3166-2:CN
COColombia1974.coISO 3166-2:CO
CRCosta Rica1974.crISO 3166-2:CR
CUCuba1974.cuISO 3166-2:CU
CVCabo Verde1974.cvISO 3166-2:CV
CWCuraçao2010.cwISO 3166-2:CW
CXChristmas Island1974.cxISO 3166-2:CX
CYCyprus1974.cyISO 3166-2:CY
CZCzechia1993.czISO 3166-2:CZ
DEGermany1974.deISO 3166-2:DE
DJDjibouti1977.djISO 3166-2:DJ
DKDenmark1974.dkISO 3166-2:DK
DMDominica1974.dmISO 3166-2:DM
DODominican Republic1974.doISO 3166-2:DO
DZAlgeria1974.dzISO 3166-2:DZ
ECEcuador1974.ecISO 3166-2:EC
EEEstonia1992.eeISO 3166-2:EE
EGEgypt1974.egISO 3166-2:EG
EHWestern Sahara1974ISO 3166-2:EH
EREritrea1993.erISO 3166-2:ER
ESSpain1974.esISO 3166-2:ES
ETEthiopia1974.etISO 3166-2:ET
FIFinland1974.fiISO 3166-2:FI
FJFiji1974.fjISO 3166-2:FJ
FKFalkland Islands (Malvinas)1974.fkISO 3166-2:FK
FMMicronesia (Federated States of)1986.fmISO 3166-2:FM
FOFaroe Islands1974.foISO 3166-2:FO
FRFrance1974.frISO 3166-2:FR
GAGabon1974.gaISO 3166-2:GA
GBUnited Kingdom of Great Britain and Northern Ireland1974.gbISO 3166-2:GB
(.uk)
GDGrenada1974.gdISO 3166-2:GD
GEGeorgia1992.geISO 3166-2:GE
GFFrench Guiana1974.gfISO 3166-2:GF
GGGuernsey2006.ggISO 3166-2:GG
GHGhana1974.ghISO 3166-2:GH
GIGibraltar1974.giISO 3166-2:GI
GLGreenland1974.glISO 3166-2:GL
GMGambia1974.gmISO 3166-2:GM
GNGuinea1974.gnISO 3166-2:GN
GPGuadeloupe1974.gpISO 3166-2:GP
GQEquatorial Guinea1974.gqISO 3166-2:GQ
GRGreece1974.grISO 3166-2:GR
GSSouth Georgia and the South Sandwich Islands1993.gsISO 3166-2:GS
GTGuatemala1974.gtISO 3166-2:GT
GUGuam1974.guISO 3166-2:GU
GWGuinea-Bissau1974.gwISO 3166-2:GW
GYGuyana1974.gyISO 3166-2:GY
HKHong Kong1974.hkISO 3166-2:HK
HMHeard Island and McDonald Islands1974.hmISO 3166-2:HM
HNHonduras1974.hnISO 3166-2:HN
HRCroatia1992.hrISO 3166-2:HR
HTHaiti1974.htISO 3166-2:HT
HUHungary1974.huISO 3166-2:HU
IDIndonesia1974.idISO 3166-2:ID
IEIreland1974.ieISO 3166-2:IE
ILIsrael1974.ilISO 3166-2:IL
IMIsle of Man2006.imISO 3166-2:IM
INIndia1974.inISO 3166-2:IN
IOBritish Indian Ocean Territory1974.ioISO 3166-2:IO
IQIraq1974.iqISO 3166-2:IQ
IRIran (Islamic Republic of)1974.irISO 3166-2:IR
ISIceland1974.isISO 3166-2:IS
ITItaly1974.itISO 3166-2:IT
JEJersey2006.jeISO 3166-2:JE
JMJamaica1974.jmISO 3166-2:JM
JOJordan1974.joISO 3166-2:JO
JPJapan1974.jpISO 3166-2:JP
KEKenya1974.keISO 3166-2:KE
KGKyrgyzstan1992.kgISO 3166-2:KG
KHCambodia1974.khISO 3166-2:KH
KIKiribati1979.kiISO 3166-2:KI
KMComoros1974.kmISO 3166-2:KM
KNSaint Kitts and Nevis1974.knISO 3166-2:KN
KPKorea (Democratic People's Republic of)1974.kpISO 3166-2:KP
KRKorea, Republic of1974.krISO 3166-2:KR
KWKuwait1974.kwISO 3166-2:KW
KYCayman Islands1974.kyISO 3166-2:KY
KZKazakhstan1992.kzISO 3166-2:KZ
LALao People's Democratic Republic1974.laISO 3166-2:LA
LBLebanon1974.lbISO 3166-2:LB
LCSaint Lucia1974.lcISO 3166-2:LC
LILiechtenstein1974.liISO 3166-2:LI
LKSri Lanka1974.lkISO 3166-2:LK
LRLiberia1974.lrISO 3166-2:LR
LSLesotho1974.lsISO 3166-2:LS
LTLithuania1992.ltISO 3166-2:LT
LULuxembourg1974.luISO 3166-2:LU
LVLatvia1992.lvISO 3166-2:LV
LYLibya1974.lyISO 3166-2:LY
MAMorocco1974.maISO 3166-2:MA
MCMonaco1974.mcISO 3166-2:MC
MDMoldova, Republic of1992.mdISO 3166-2:MD
MEMontenegro2006.meISO 3166-2:ME
MFSaint Martin (French part)2007.mfISO 3166-2:MF
MGMadagascar1974.mgISO 3166-2:MG
MHMarshall Islands1986.mhISO 3166-2:MH
MKNorth Macedonia1993.mkISO 3166-2:MK
MLMali1974.mlISO 3166-2:ML
MMMyanmar1989.mmISO 3166-2:MM
MNMongolia1974.mnISO 3166-2:MN
MOMacao1974.moISO 3166-2:MO
MPNorthern Mariana Islands1986.mpISO 3166-2:MP
MQMartinique1974.mqISO 3166-2:MQ
MRMauritania1974.mrISO 3166-2:MR
MSMontserrat1974.msISO 3166-2:MS
MTMalta1974.mtISO 3166-2:MT
MUMauritius1974.muISO 3166-2:MU
MVMaldives1974.mvISO 3166-2:MV
MWMalawi1974.mwISO 3166-2:MW
MXMexico1974.mxISO 3166-2:MX
MYMalaysia1974.myISO 3166-2:MY
MZMozambique1974.mzISO 3166-2:MZ
NANamibia1974.naISO 3166-2:NA
NCNew Caledonia1974.ncISO 3166-2:NC
NENiger1974.neISO 3166-2:NE
NFNorfolk Island1974.nfISO 3166-2:NF
NGNigeria1974.ngISO 3166-2:NG
NINicaragua1974.niISO 3166-2:NI
NLNetherlands1974.nlISO 3166-2:NL
NONorway1974.noISO 3166-2:NO
NPNepal1974.npISO 3166-2:NP
NRNauru1974.nrISO 3166-2:NR
NUNiue1974.nuISO 3166-2:NU
NZNew Zealand1974.nzISO 3166-2:NZ
OMOman1974.omISO 3166-2:OM
PAPanama1974.paISO 3166-2:PA
PEPeru1974.peISO 3166-2:PE
PFFrench Polynesia1974.pfISO 3166-2:PF
PGPapua New Guinea1974.pgISO 3166-2:PG
PHPhilippines1974.phISO 3166-2:PH
PKPakistan1974.pkISO 3166-2:PK
PLPoland1974.plISO 3166-2:PL
PMSaint Pierre and Miquelon1974.pmISO 3166-2:PM
PNPitcairn1974.pnISO 3166-2:PN
PRPuerto Rico1974.prISO 3166-2:PR
PSPalestine, State of1999.psISO 3166-2:PS
PTPortugal1974.ptISO 3166-2:PT
PWPalau1986.pwISO 3166-2:PW
PYParaguay1974.pyISO 3166-2:PY
QAQatar1974.qaISO 3166-2:QA
RERéunion1974.reISO 3166-2:RE
RORomania1974.roISO 3166-2:RO
RSSerbia2006.rsISO 3166-2:RS
RURussian Federation1992.ruISO 3166-2:RU
RWRwanda1974.rwISO 3166-2:RW
SASaudi Arabia1974.saISO 3166-2:SA
SBSolomon Islands1974.sbISO 3166-2:SB
SCSeychelles1974.scISO 3166-2:SC
SDSudan1974.sdISO 3166-2:SD
SESweden1974.seISO 3166-2:SE
SGSingapore1974.sgISO 3166-2:SG
SHSaint Helena, Ascension and Tristan da Cunha1974.shISO 3166-2:SH
SISlovenia1992.siISO 3166-2:SI
SJSvalbard and Jan Mayen1974.sjISO 3166-2:SJ
SKSlovakia1993.skISO 3166-2:SK
SLSierra Leone1974.slISO 3166-2:SL
SMSan Marino1974.smISO 3166-2:SM
SNSenegal1974.snISO 3166-2:SN
SOSomalia1974.soISO 3166-2:SO
SRSuriname1974.srISO 3166-2:SR
SSSouth Sudan2011.ssISO 3166-2:SS
STSao Tome and Principe1974.stISO 3166-2:ST
SVEl Salvador1974.svISO 3166-2:SV
SXSint Maarten (Dutch part)2010.sxISO 3166-2:SX
SYSyrian Arab Republic1974.syISO 3166-2:SY
SZEswatini1974.szISO 3166-2:SZ
TCTurks and Caicos Islands1974.tcISO 3166-2:TC
TDChad1974.tdISO 3166-2:TD
TFFrench Southern Territories1979.tfISO 3166-2:TF
TGTogo1974.tgISO 3166-2:TG
THThailand1974.thISO 3166-2:TH
TJTajikistan1992.tjISO 3166-2:TJ
TKTokelau1974.tkISO 3166-2:TK
TLTimor-Leste2002.tlISO 3166-2:TL
TMTurkmenistan1992.tmISO 3166-2:TM
TNTunisia1974.tnISO 3166-2:TN
TOTonga1974.toISO 3166-2:TO
TRTurkey1974.trISO 3166-2:TR
TTTrinidad and Tobago1974.ttISO 3166-2:TT
TVTuvalu1977.tvISO 3166-2:TV
TWTaiwan, Province of China1974.twISO 3166-2:TW
TZTanzania, United Republic of1974.tzISO 3166-2:TZ
UAUkraine1974.uaISO 3166-2:UA
UGUganda1974.ugISO 3166-2:UG
UMUnited States Minor Outlying Islands1986ISO 3166-2:UM
USUnited States of America1974.usISO 3166-2:US
UYUruguay1974.uyISO 3166-2:UY
UZUzbekistan1992.uzISO 3166-2:UZ
VAHoly See1974.vaISO 3166-2:VA
VCSaint Vincent and the Grenadines1974.vcISO 3166-2:VC
VEVenezuela (Bolivarian Republic of)1974.veISO 3166-2:VE
VGVirgin Islands (British)1974.vgISO 3166-2:VG
VIVirgin Islands (U.S.)1974.viISO 3166-2:VI
VNViet Nam1974.vnISO 3166-2:VN
VUVanuatu1980.vuISO 3166-2:VU
WFWallis and Futuna1974.wfISO 3166-2:WF
WSSamoa1974.wsISO 3166-2:WS
YEYemen1974.yeISO 3166-2:YE
YTMayotte1993.ytISO 3166-2:YT
ZASouth Africa1974.zaISO 3166-2:ZA
ZMZambia1974.zmISO 3166-2:ZM
ZWZimbabwe1980.zwISO 3166-2:ZW


.

发表在 article | Top-Level Domain (TLD)已关闭评论

希腊字母简表

.

序号大写小写英语音标注音英文汉语名称常用指代意义
1Αα/'ælfə/alpha阿尔法角度、系数、角加速度、第一个、电离度、转化率
2Ββ/'bi:tə/ 或 /'beɪtə/ beta贝塔 磁通系数、角度、系数
3Γγ/'gæmə/gamma伽玛 电导系数、角度、比热容比
4Δδ/'deltə/delta得尔塔 变化量、焓变、熵变、屈光度、一元二次方程中的判别式、化学位移
5Εε/'epsɪlɒn/epsilon艾普西隆对数之基数、介电常数、电容率、应变
6Ζζ/'zi:tə/zeta泽塔系数、方位角、阻抗、相对黏度
7Ηη/'i:tə/eta伊塔 迟滞系数、机械效率
8Θθ/'θi:tə/theta西塔温度、角度
9Ιι/aɪ'əʊtə/iota约(yāo)塔微小、一点
10Κκ/'kæpə/kappa卡帕介质常数、绝热指数
11λ/'læmdə/lambda拉姆达波长、体积、导热系数 普朗克常数
12Μμ/mju:/mu磁导率、微、动摩擦系(因)数、流体动力黏度、货币单位,莫比乌斯函数
13Νν/nju:/nu磁阻系数、流体运动粘度、光波频率、化学计量数
14Ξξ希腊 /ksi/ 英美 /ˈzaɪ/ 或 /ˈsaɪ/ xi克西 随机变量、(小)区间内的一个未知特定值
15Οο/əuˈmaikrən/ 或 /ˈɑmɪˌkrɑn/ omicron奥米克戎高阶无穷小函数
16π/paɪ/pi圆周率、π(n)表示不大于n的质数个数、连乘
17Ρρ/rəʊ/rho电阻率、柱坐标和极坐标中的极径、密度、曲率半径
18σ,ς/'sɪɡmə/sigma西格马总和、表面密度、跨导、应力、电导率
19Ττ/tɔ:/ 或 /taʊ/ tau时间常数、切应力、2π(两倍圆周率)
20Υυ/ˈipsɪlon/ 或 /ˈʌpsɪlɒn/ upsilon阿普西龙位移
21Φφ/faɪ/phi磁通量、电通量、角、透镜焦度、热流量、电势、直径、欧拉函数
22Χχ/kaɪ/chi统计学中有卡方(χ^2)分布
23Ψ ψ/ps/psi普西角速、介质电通量、ψ函数、磁链
24Ωω/'əʊmɪɡə/ 或 /oʊ'meɡə/ omega奥米伽/欧米伽 欧姆、角速度、角频率、交流电的电角度、化学中的质量分数、不饱和度

.

发表在 article | 希腊字母简表已关闭评论

Linux SMART 硬盘检测

SMART(Self-Monitoring, Analysis, and Reporting Technology)是一种普及度比较高的磁盘分析检测工具,磁盘运行过程中,该工具搜集磁盘的状态参数,如型号、容量、温度、密度、扇区、寻道时间、传输、误码率等。可以做到动态检测磁盘状态,当某些参数达到阈值时,会警示磁盘故障。

SMART包括2个工具,守护进程smartd和应用程序smartctl。守护进程用来检测、监控、分析、上报磁盘信息,有对应的配置维护。smartctl用以检查磁盘的运行状态信息。

下面简单列举smartctrl的常用用法:

smartctl -a #检查是否启用smart
smartctl -s on #启用smart
smartctl -H #检查磁盘健康状况
smartctl -A #查看硬盘的详细信息
smartctl -t long #后台检测,消耗时间长
smartctl -t short #后台检测,消耗时间短
smartctl -C -t #前台检测硬盘,CPU、内存消耗
smartctl -X #中断后台检测硬盘
smartctl -l selftest #显示硬盘检测日志
smartctl -l error #显示硬盘错误汇总

一般会在守护进程smartd中配置一些高级功能,比如,定时检测、分析汇总、上报等。可以编辑smartd.conf进行配置。

常用的配置项:

邮件告警
/dev/sda -a -m admin@example.com,root@localhost #监控磁盘的所有属性,出现 Failure,邮件通知
/dev/sda -H -m admin@example.com,root@localhost #监控磁盘的健康状态,出现 Failure,邮件通知
/dev/sdb -m admin@example.com -M test #启用时,发送test消息

定时检测
/dev/sde -d hpt,1/1 -a -s S/../.././01 #每天1:00-2:00 am,进行短自检
/dev/sde -d hpt,1/2 -a -s S/../.././02 #每天2:00-3:00 am,进行短自检
/dev/sde -d hpt,1/3 -a -s S/../.././03 #每天3:00-4:00 am,进行短自检
/dev/sde -d hpt,1/4/1 -a -s L/../../7/00 #每周日00:00-01:00 am,进行长自检
/dev/sde -d hpt,1/4/2 -a -s L/../../7/02 #每周日02+00-03:00 am,进行长自检

【参考】
http://smartmontools.sourceforge.net/man/smartd.conf.5.html


发表在 linux | Linux SMART 硬盘检测已关闭评论

linux 压缩/解压 compress/uncompress

tar

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-t是解开的意思

压缩

tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg 

tar -czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz

 tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2

tar -cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z

rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux

zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压

tar -xvf file.tar //解压 tar包

tar -xzvf file.tar.gz //解压tar.gz

tar -xjvf file.tar.bz2   //解压 tar.bz2

tar -xZvf file.tar.Z   //解压tar.Z

unrar e file.rar //解压rar

unzip file.zip //解压zip

总结

1、*.tar 用 tar -xvf 解压

2、*.gz 用 gzip -d或者gunzip 解压

3、*.tar.gz和*.tgz 用 tar -xzf 解压

4、*.bz2 用 bzip2 -d或者用bunzip2 解压

5、*.tar.bz2用tar -xjf 解压

6、*.Z 用 uncompress 解压

7、*.tar.Z 用tar -xZf 解压

8、*.rar 用 unrar e解压

9、*.zip 用 unzip 解压

发表在 linux | 标签为 , | linux 压缩/解压 compress/uncompress已关闭评论

CNAME Flattening

最近搞 DNS,在云闪(人家正式的名字叫 Cloudflare 魂淡)看到一个叫 CNAME Flatten 的功能。新鲜,没见过。一查不得了,中文资料近乎没有,这搞毛啊。我就占个坑解释下这东西是啥。

解决的问题:

  1. A 记录只能指向单个 IP。无法有效利用已有的 CDN 网络。比方说,Google有这么多服务器,你加 A 记录的话只能指向某一个 IP,其他的服务器永远访问不到,多尴尬(用 CNAME 可解)
  2. 可惜,CNAME 记录不能应用于根域名。你可以给比方说:你可以给www.parisqian.com 加 CNAME 到 qiansen1386.github.io 但不能把 parisqian.com 也指向 qiansen1386.github.io。这将导致 @parisqian.com 的 MX 记录失效。(故而 DNS 标准形成时候的几个 RFC 都不允许这种做法)(在 www 子域名上应用 CNAME 可解)
  3. 很不易于推广嘛。你怎么跟你的用户解释,为什么打 www 和不打 www 打开的网站完全不同?并且叮嘱网友一定要加 www(:з」∠)

CNAME Flatten 可解!

CNAME Flatten 会解析并把你的 CNAME 记录解析为一系列 A 记录的缓存,赛高得死🙌。

$ dig example.com

QUESTION SECTION:
;example.com.   IN   A

;; ANSWER SECTION:
example.com.   299   IN   A   162.159.255.115
example.com.   299   IN   A   162.159.254.115
example.com.   299   IN   A   162.159.252.116
example.com.   299   IN   A   162.159.253.116
example.com.   299   IN   A   162.159.253.115

抄自 Cloudflare

附录#

#1 CNAME是啥?别名解析,也就是从一个域名指向另一个域名。由此可以形成一个解析链条。并最终得到一个具体的 A 或 AAAA 记录(即 IP)。

#2 最常见的资源记录类型有

  • A记录(主机记录):RFC 1035定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。
  • CNAME记录(别名记录): RFC 1035定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。
  • AAAA记录(IPv6主机记录): RFC 3596定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。

(来源域名系统 - 维基百科

#3 DNS 的几个主要 RFC 的生成年份

参考:https://support.cloudflare.com/hc/en-us/articles/200169056-CNAME-Flattening-RFC-compliant-support-for-CNAME-at-the-root

来源:https://www.jianshu.com/p/4ec44dc6dad4

发表在 linux | CNAME Flattening已关闭评论

CoAP

COAP协议简介

Coap(Constrained Application Protocol)是一种在物联网世界的类web协议,它的详细规范定义在 RFC 7252。COAP名字翻译来就是“受限应用协议”,顾名思义,使用在资源受限的物联网设备上。物联网设备的ram,rom都通常非常小,运行TCP和HTTP是不可以接受的。

COAP协议特点

1 COAP协议网络传输层由TCP改为UDP。

COAP协议层

2 它基于REST,server的资源地址和互联网一样也有类似url的格式,客户端同样有POST,GET,PUT,DELETE方法来访问server,对HTTP做了简化。

3 COAP是二进制格式的,HTTP是文本格式的,COAP比HTTP更加紧凑。

4 轻量化,COAP最小长度仅仅4B,一个HTTP的头都几十个B了。

5 支持可靠传输,数据重传,块传输。 确保数据可靠到达。

6 支持IP多播, 即可以同时向多个设备发送请求。

7 非长连接通信,适用于低功耗物联网场景。

COAP协议消息类型

COAP协议有4种消息类型

CON—— 需要被确认的请求,如果CON请求被发送,那么对方必须做出响应。这有点像TCP,对方必须给确认收到消息,用以可靠消息传输。

可靠消息传输

NON—— 不需要被确认的请求,如果NON请求被发送,那么对方不必做出回应。这适用于消息会重复频繁的发送,丢包不影响正常操作。这个和UDP很像。用以不可靠消息传输。

不可靠消息传输

ACK —— 应答消息,对应的是CON消息的应答。

RST —— 复位消息,可靠传输时候接收的消息不认识或错误时,不能回ACK消息,必须回RST消息。

COAP消息格式

coap消息格式

消息头(HEAD)

第一行是消息头,必须有,固定4个byte。

Ver : 2bit, 版本信息,当前是必须写0x01。

T: 2bit, 消息类型,包括 CON, NON. ACK, RST这4种。

TKL: 4bit,token长度, 当前支持0~8B长度,其他长度保留将来扩展用。

Code:8bit,分成前3bit(0~7)和后5bit(0~31),前3bit代表类型。 0代表空消息或者请求码, 2开头代表响应码,取值如下:

1 0.00 Indicates an Empty message

2 0.01-0.31 Indicates a request.

3 1.00-1.31 Reserved

4 2.00-5.31 Indicates a response.

5 6.00-7.31 Reserved

Message ID:16bit, 代表消息MID,每个消息都有一个ID ,重发的消息MID不变

token(可选)用于将响应与请求匹配。 token值为0到8字节的序列。 ( 每条消息必须带有一个标记, 即使它的长度为零)。 每个请求都带有一个客户端生成的token, 服务器在任何结果响应中都必须对其进行回应。token类似消息ID,用以标记消息的唯一性。token还是消息安全性的一个设置,使用全8字节的随机数,使伪造的报文无法获得验证通过。option(可选,0个或者多个)

请求消息 与回应消息都可以0~多个options。 主要用于描述请求或者响应对应的各个属性,类似参数或者特征描述,比如是否用到代理服务器,目的主机的端口等。

payload(可选)

实际携带数据内容, 若有, 前面加payload标识符“0xFF”,如果没有payload标识符,那么就代表这是一个0长度的payload。如果存在payload标识符但其后跟随的是0长度的payload,那么必须当作消息格式错误处理。

COAP的请求码(requests)和响应码(responses)

【0.01】GET方法——用于获得某资源

【0.02】POST方法——用于创建某资源

【0.03】PUT方法——用于更新某资源

【0.04】DELETE方法——用于删除某资源

CoAP的URL

coap的url和HTTP的有很相似的地方,开头是“coap”对应“http”或者“coaps”对应“https”。

HTTP的默认端口是tcp 80,coap的默认端口是udp 5683(coaps是5684)。

URL里面的“/”“&”“.”

下面三个URL的地址是一样的。访问example.com这个域名,端口是udp 5683,访问的资源地址是~sensors/temp.xml。

coap://example.com:5683/~sensors/temp.xml

coap://EXAMPLE.com/%7Esensors/temp.xml

coap://EXAMPLE.com:/%7esensors/temp.xml

COAP的安全性

COAP的安全性是用DTLS加密实现的。DTLS的实现需要的资源和带宽较多,如果是资源非常少的终端和极有限的带宽下可能会跑不起来。DTLS仅仅在单播情况下适用。

发表在 iot | CoAP已关闭评论

案例图片

发表在 article | 案例图片已关闭评论

maven

Maven

~/.m2

Maven mirrors aliyun

<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>

Maven mirrors tencent

<mirror>
<id>nexus-tencent</id>
<mirrorOf>*</mirrorOf>
<name>Nexus-tencent</name>
<url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror> 

 

.

 

 

 

发表在 java | maven已关闭评论

postfix admin command

生成数据库 postmap hash:/etc/postfix/access
显示信件列表: postqueue -p
显示信件內容: postcat -q Queue_ID          //Queue_ID为信件代号;
刪除各別信件:postsuper -d Queue_ID
全部刪除: postsuper -d ALL
扣住信件: postsuper -h Queue_ID
回复: postsuper -H Queue_ID
重新排程:
postsuper -r Queue_ID
postsuper -r ALL
清除信件:
postqueue -f (全部)
postqueue -s 主机名称(个别对象)
要查看Postfix的当前主要配置文件的存放路径:
postconf -n
系统日志:tail -f /var/log/messages
邮件日志:tail -f /var/log/maillog
clamd相关: tail -f /var/log/clamav/clamd.log  tail -f /var/log/clamav/freshclam.log
maildrop相关:tail -f /var/log/maildrop.log
apache相关:tail -f /usr/local/httpd/logs/error_log  tail -f /usr/local/httpd/logs/suexec_log
mysql相关: tail -f /usr/local/mysql/data/linux.linux.com.err
测试amavisd: amavisd -d config debug-sa
测试spam: spamassassin -D --lint
测试maildrop: maildrop -V 10 -d test@test.com

重新加载postfix-sen的配置文件
postfix -c /etc/postfix-sen reload
查看postfix-sen下的邮件的数量
postqueue -c /etc/postfix-sen -p
删除postfix-mx2-staredm的所有邮件
postsuper -c /etc/postfix-sen -d ALL

grep  Queue_ID /var/log/maillog   //查看此邮件在邮件服务器发送状态;
-----------------------------------------------------------------------
发表在 mail | postfix admin command已关闭评论

linux commands

 

 

---------- find ------------

$ find <指定目录> <指定条件> <指定动作>
find / | egrep "sendmail|postfix" | egrep -v "share/doc"
find /etc -name '*srm*'
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件

----------- locate -----------

$ locate /etc/sh
搜索etc目录下所有以sh开头的文件。

$ locate ~/m
搜索用户主目录下,所有以m开头的文件。

$ locate -i ~/m
搜索用户主目录下,所有以m开头的文件,并且忽略大小写。

----------

 

 

 

.

 

 

 

发表在 linux | 标签为 | linux commands已关闭评论

telnet smtp

用perl对用户标识和口令进行BASE64编码,登陆的时候用

perl -MMIME::Base64 -e 'print encode_base64("Username");'

网易邮箱客户端需要授权,密码是收取密码

perl -MMIME::Base64 -e 'print encode_base64("Password");'

 

 

telnet smtp.163.com 25    # 25端口

Trying 123.125.50.133...

Connected to smtp.163.com.
Escape character is '^]'.    # Ctrl + ] 进入命令
220 163.com Anti-spam GT for Coremail System (163com[20141201])
HELO smtp.163.com     # 握手
250 OK
AUTH LOGIN        # 登录
334 dXNlcm5hbWU6
UserName_Base64      # 用户标识
334 UGFzc3dvcmQ6
PassWord_Base64      # 口令
235 Authentication successful
MAIL FROM: <test@163.com>
250 Mail OK
RCPT TO: <dst@qq.com>
250 Mail OK
DATA           # 编辑内容
354 End data with <CR><LF>.<CR><LF>
SUBJECT: test by telnet

内容
.              # CRLF.CRLF结尾
554 DT:SPM 163 smtp3,DdGowADXp5QSS0NbadqVAA--.38636S2 1531136905,please see http://mail.163.com/help/help_spam_16.htm?ip=218.56.92.204&hostid=smtp3&time=1531136905
NOOP            # 循环不退出
250 OK
QUIT           # 退出
221 Bye
Connection closed by foreign host.

 

错误说明:

  •421 HL:REP 该IP发送行为异常,存在接收者大量不存在情况,被临时禁止连接。请检查是否有用户发送病毒或者垃圾邮件,并核对发送列表有效性;
•421 HL:ICC 该IP同时并发连接数过大,超过了网易的限制,被临时禁止连接。请检查是否有用户发送病毒或者垃圾邮件,并降低IP并发连接数量;
•421 HL:IFC 该IP短期内发送了大量信件,超过了网易的限制,被临时禁止连接。请检查是否有用户发送病毒或者垃圾邮件,并降低发送频率;
•421 HL:MEP 该IP发送行为异常,存在大量伪造发送域域名行为,被临时禁止连接。请检查是否有用户发送病毒或者垃圾邮件,并使用真实有效的域名发送;
•450 MI:CEL 发送方出现过多的错误指令。请检查发信程序;
•450 MI:DMC 当前连接发送的邮件数量超出限制。请减少每次连接中投递的邮件数量;
•450 MI:CCL 发送方发送超出正常的指令数量。请检查发信程序;
•450 RP:DRC 当前连接发送的收件人数量超出限制。请控制每次连接投递的邮件数量;
•450 RP:CCL 发送方发送超出正常的指令数量。请检查发信程序;
•450 DT:RBL 发信IP位于一个或多个RBL里。请参考http://www.rbls.org/关于RBL的相关信息;
•450 WM:BLI 该IP不在网易允许的发送地址列表里;
•450 WM:BLU 此用户不在网易允许的发信用户列表里;
•451 DT:SPM ,please try again 邮件正文带有垃圾邮件特征或发送环境缺乏规范性,被临时拒收。请保持邮件队列,两分钟后重投邮件。需调整邮件内容或优化发送环境;
•451 Requested mail action not taken: too much fail authentication 登录失败次数过多,被临时禁止登录。请检查密码与帐号验证设置;
•451 RP:CEL 发送方出现过多的错误指令。请检查发信程序;
•451 MI:DMC 当前连接发送的邮件数量超出限制。请控制每次连接中投递的邮件数量;
•451 MI:SFQ 发信人在15分钟内的发信数量超过限制,请控制发信频率;
•451 RP:QRC 发信方短期内累计的收件人数量超过限制,该发件人被临时禁止发信。请降低该用户发信频率;
•451 Requested action aborted: local error in processing 系统暂时出现故障,请稍后再次尝试发送;
•500 Error: bad syntaxU 发送的smtp命令语法有误;
•550 MI:NHD HELO命令不允许为空;
•550 MI:IMF 发信人电子邮件地址不合规范。请参考http://www.rfc-editor.org/关于电子邮件规范的定义;
•550 MI:SPF 发信IP未被发送域的SPF许可。请参考http://www.openspf.org/关于SPF规范的定义;
•550 MI:DMA 该邮件未被发信域的DMARC许可。请参考http://dmarc.org/关于DMARC规范的定义;
•550 MI:STC 发件人当天的连接数量超出了限定数量,当天不再接受该发件人的邮件。请控制连接次数;
•550 RP:FRL 网易邮箱不开放匿名转发(Open relay);
•550 RP:RCL 群发收件人数量超过了限额,请减少每封邮件的收件人数量;
•550 RP:TRC 发件人当天内累计的收件人数量超过限制,当天不再接受该发件人的邮件。请降低该用户发信频率;
•550 DT:SPM 邮件正文带有很多垃圾邮件特征或发送环境缺乏规范性。需调整邮件内容或优化发送环境;
•550 Invalid User 请求的用户不存在;
•550 User in blacklist 该用户不被允许给网易用户发信;
•550 User suspended 请求的用户处于禁用或者冻结状态;
•550 Requested mail action not taken: too much recipient  群发数量超过了限额;
•552 Illegal Attachment 不允许发送该类型的附件,包括以.uu .pif .scr .mim .hqx .bhx .cmd .vbs .bat .com .vbe .vb .js .wsh等结尾的附件;
•552 Requested mail action aborted: exceeded mailsize limit 发送的信件大小超过了网易邮箱允许接收的最大限制;
•553 Requested action not taken: NULL sender is not allowed 不允许发件人为空,请使用真实发件人发送;
•553 Requested action not taken: Local user only  SMTP类型的机器只允许发信人是本站用户;
•553 Requested action not taken: no smtp MX only  MX类型的机器不允许发信人是本站用户;
•553 authentication is required  SMTP需要身份验证,请检查客户端设置;
•554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;
•554 DT:SUM 信封发件人和信头发件人不匹配;
•554 IP is rejected, smtp auth error limit exceed 该IP验证失败次数过多,被临时禁止连接。请检查验证信息设置;
•554 HL:IHU 发信IP因发送垃圾邮件或存在异常的连接行为,被暂时挂起。请检测发信IP在历史上的发信情况和发信程序是否存在异常;
•554 HL:IPB 该IP不在网易允许的发送地址列表里;
•554 MI:STC 发件人当天内累计邮件数量超过限制,当天不再接受该发件人的投信。请降低发信频率;
•554 MI:SPB 此用户不在网易允许的发信用户列表里;
•554 IP in blacklist 该IP不在网易允许的发送地址列表里。

 

 

 

 

.

 

 

 

 

 

 

发表在 protocol | telnet smtp已关闭评论