zhuangdebiao 发布的文章

show master statusG

show slave statusG

设置binlog多少天过期

show variables like 'expire_logs_days';
set global expire_logs_days = 30;

purge master logs before'2021-09-01 17:20:00';
purge master logs to'mysql-bin.000022';

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包中所有文件,-x是解开的意思 

常用

tar -czf jpg.tar.gz *.jpg
tar -xzvf file.tar.gz

压缩

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 解压

创建4g swap分区

dd if=/dev/zero of=/var/swap bs=1024 count=4194304
mkswap /var/swap
激活swap分区

swapon /var/swap
设置自动挂载

vi /etc/fstab
/var/swap swap swap defaults 0 0
重启服务器

shutdown -r now
查看内存使用状态

free -m
total used free shared buff/cache available
Mem: 991 347 261 40 382 382
Swap: 4096 0 4096

创建swap分区成功!

openssl 生成pkcs1格式的私钥,密钥长度2048位, (PKCS1)
openssl genrsa -out private.pkcs1.pem 2048
PKCS1私钥转换为PKCS8
openssl pkcs8 -topk8 -inform PEM -in private.pkcs1.pem -outform pem -nocrypt -out private.pkcs8.pem
逆过程:PKCS8格式私钥再转换为PKCS1格式
openssl rsa -in private.pkcs8.pem -out private.pkcs1.pem
从pkcs1私钥中生成pkcs8公钥
openssl rsa -in private.pkcs1.pem -pubout -out public.pkcs8.pem
从pkcs8私钥中生成pkcs8公钥
openssl rsa -in private.pkcs8.pem -pubout -out public.pkcs8.pem
pkcs8公钥转pkcs1公钥
 openssl rsa -pubin -in public.pkcs8.pem -RSAPublicKey_out -out public.pkcs1.pem
 
pkcs1公钥转换为pkcs8公钥
openssl rsa -RSAPublicKey_in -in public.pkcs1.pem -pubout -out public.pkcs8.pem

openssl生成的RSA私钥, 与 ssh-keygen生成的私钥, 格式相同,但是公钥格式不相同

  1. 使用openssl genrsa工具产生公钥指数为3密钥对。

    首先产生私钥,使用如下命令(因为默认的是2048位,因此这里没有传入key len):

    openssl genrsa -out private.pkcs1.pem 2048

    默认2048位, -3 表示公钥指数e=3的RSA2048密钥对,提高验证签名的效率

    openssl genrsa -3 -out private.pkcs1.pem

  2. 从pkcs1私钥中生成pkcs8公钥

    使用如下命令:openssl rsa -pubout -in private.pkcs1.pem -out public.pkcs8.pem

  3. 使用ssh-keygen将pkcs8公钥转换成ssh格式

    ssh-keygen -i [-m key_format] [-f input_keyfile]

    ssh-keygen -f public.pkcs8.pem -i -mPKCS8 > pub.pem

转换完成的 priv.pem 和 pub.pem 即为符合ssh-keygen格式的密钥对。


openssl rsa命令生成RSA Key时,有3种可选格式,分别为PEM,DER和NET, 通过-inform参数指定,默认为PEM。

DER: 原始的RSA Key按照ASN1 DER编码的方式存储
PEM: DER经过base64编码转换为PEM格式
NET: OpenSSL的帮助提示显示,NET是一个同老式的Netscape server和微软IIS .key文件兼容的格式
私钥:PEM --(convert)--> DER
openssl rsa -inform PEM -in Key0.pem -outform DER -out Key0.der
公钥:PEM --(convert)> DER
openssl rsa -inform PEM -in Key0_pub.pem -pubin -outform DER -out Key0_pub.der

注意: PEM是DER格式进行base64编码的格式,那PEM通过base64解码应为DER格式:

私钥:PEM --(base64 decode)--> DER
openssl base64 -d -in Key0.pem -out Key0.bin
公钥:PEM --(base64 decryption)--> DER
openssl base64 -d -in Key0_pub.pem -out Key0_pub.bin

DER转PEM格式

使用openssl rsa命令转换:

私钥:DER --(convert)--> PEM
openssl rsa -inform DER -in Key0.der -outform PEM -out Key0.PEM 
公钥:DER --(convert)--> PEM
openssl rsa -inform DER -in Key0_pub.der -pubin -outform PEM -out Key0_pub.PEM

使用openssl base64命令转换:

私钥:DER --(encryption)--> PEM
openssl base64 -e -in Key0.der -out Key0.pem
公钥:DER --(encryption)--> PEM
openssl base64 -e -in Key0_pub.der -out Key0_pub.pem

openssl rsa命令 与 openssl base64命令,唯一不同:

后者Key0_pub.pem是通过openssl base64命令得到的文件,

丢失了"-----BEGIN PUBLIC KEY-----“和”-----END PUBLIC KEY-----"这两条注释信息

PEM转TXT格式

直接通过openssl rsa命令的-text参数输出可读的TXT格式:

私钥:PEM --> TXT
openssl rsa -inform PEM -in Key0.PEM -text -out Key0.txt
公钥:PEM --> TXT
openssl rsa -inform PEM -in Key0_pub.PEM -pubin -text -out Key0_pub.txt

注意: 转换为TXT的PEM文件需要包含"-----BEGIN PUBLIC KEY-----“和”-----END PUBLIC KEY-----"标记,没有这个标记转换会失败

TXT转PEM格式

openssl rsa -inform PEM -in Key1.txt -outform PEM -out Key1.pem

TXT文件最后的"-----BEGIN PUBLIC KEY-----“和”-----END PUBLIC KEY-----"部分就是PEM内容

注意: 输入格式和输出格式都需要指定为PEM格式。

为什么输入明明是txt文本,却需要指定为PEM格式呢?

打开Key1.txt文件看下文件格式,除了前面部分RSA Key的各种参数外,

在文件最后面还包含了一段由

"-----BEGIN RSA PRIVATE KEY-----“和”-----END RSA PRIVATE KEY-----"包含的部分。

因此工具在处理输入的TXT文件时,会识别并提取

"-----BEGIN RSA PRIVATE KEY-----“和”-----END RSA PRIVATE KEY-----"字符串中间的部分。

所以, 即使在TXT文件内输入其它的字符,openssl工具也可以正确提取,前提是"BEGIN"和"END"格式字符串内是一个完整的Key。

.crt的ssl证书文件转换成.pem格式
openssl x509 -in www.xx.com.crt -out www.xx.com.pem
将pem转换为crt:
openssl x509 -outform der -in your-cert.pem -out your-cert.crt

使用OpenSSL进行转换

以下命令允许将证书和密钥转换为不同的格式,使其与特定类型的服务器或软件兼容。

将DER文件(.crt .cer .der)转换为PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem
将PEM文件转换为DER

openssl x509 -outform der -in certificate.pem -out certificate.der
将包含私钥和证书的PKCS#12文件(.pfx .p12)转换为PEM

openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes

You can add -nocerts to only output the private key or add -nokeys to only output the certificates.
将PEM证书文件和私钥转换为PKCS#12(.pfx .p12)

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
将PEM转换为CRT(.CRT文件)

openssl x509 -outform der -in certificate.pem -out certificate.crt
OpenSSL转换PEM

将PEM转换为DER

openssl x509 -outform der -in certificate.pem -out certificate.der
将PEM转换为P7B

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
将PEM转换为PFX

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
OpenSSL转换DER

将DER转换为PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem
OpenSSL转换P7B

将P7B转换为PEM

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
将P7B转换为PFX

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
OpenSSL转换PFX

将PFX转换为PEM

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
通过OpenSSL生成rsa密钥

在命令行上使用OpenSSL,首先需要生成公钥和私钥,应该使用-passout参数密码保护此文件,该参数可以采用许多不同的形式,可以请参阅OpenSSL文档。

openssl genrsa -out private.pem 1024
这将创建一个名为private.pem的密钥文件,该文件使用1024位(bits)。该文件实际上同时具有私钥和公钥,可以从该文件中提取公共密钥:

openssl rsa -in private.pem -out public.pem -outform PEM -pubout

or

openssl rsa -in private.pem -pubout > public.pem

or

openssl rsa -in private.pem -pubout -out public.pem
现在你的public.pem只包含公钥,可以和第三方自由地分享。可以通过使用公钥加密自己的东西然后使用私钥进行解密来测试,首先我们需要一些数据做加密:

示例文件:

echo 'too many secrets' > file.txt
现在在file.txt中有一些数据,可以使用OpenSSL和公钥进行加密:

openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
这将创建一个加密版本的file.txt,命令这个文件为file.ssl(如果直接打开这个文件查看那么它看起来只是二进制垃圾,人类无法看懂)。然后可以使用私钥解密它:

openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
现在在decryptpted.txt中有一个未加密的文件:

cat decrypted.txt
|output -> too many secrets
OpenSSL中的RSA工具选项

名称:

rsa - RSA密钥处理工具
概要:

openssl rsa [-help] [-inform PEM | NET | DER] [-outform PEM | NET | DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-aes128] [ -aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin ] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-engine id]
说明:
rsa命令处理RSA密钥。它们可以在各种形式之间进行转换,并将其组件打印出来。注意,此命令使用传统的SSLeay兼容格式进行私钥加密:较新的应用程序应使用pkcs8实用程序使用更安全的PKCS#8格式。

命令选项:

-help
打印出使用信息。

-inform DER|NET|PEM
指定输入格式。 DER选项使用与PKCS#1 RSAPrivateKey或SubjectPublicKeyInfo格式兼容的ASN1 DER编码格式。 PEM格式是默认格式:它由DER格式base64编码,带有附加的页眉和页脚行。在输入PKCS#8格式的私钥也被接受。 NET格式是在NOTES部分中描述的格式。

-outform DER|NET|PEM
指定输出格式,选项与-inform选项的含义相同。

-in filename
如果未指定此选项,则指定从或从标准输入读取密钥的输入文件名。如果密钥加密,将提示输入密码。

-passin arg
输入文件的密码来源。有关arg的格式的更多信息,参阅openssl中的PASS PHRASE ARGUMENTS部分。

-out filename
如果未指定此选项,则指定将密钥写入或输出的输出文件名。如果设置了任何加密选项,则会提示输入密码。输出文件名不能与输入文件名相同。

-passout password
输出文件密码来源。有关arg的格式的更多信息,参阅openssl中的PASS PHRASE ARGUMENTS部分。

-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea
这些选项在输出之前用指定的密码加密私钥。会有同通行提示信息。如果没有指定这些选项,则key以纯文本形式写入。这些选项只能用于PEM格式的输出文件。

-text
除了编码版本之外,以纯文本形式打印各种公共或私人密钥组件。

-noout
此选项可防止输出密钥的编码版本。

-modulus
此选项打印出该键的取模数值。

-check
此选项将检查RSA私钥的一致性。

-pubin
默认情况下,从输入文件读取私钥:使用此选项读取公钥。

-pubout
默认情况下会输出一个私钥:使用此选项将会输出一个公钥。如果输入是公钥,则会自动设置此选项。

-RSAPublicKey_in, -RSAPublicKey_out
像-pubin和-pubout一样,除了使用RSAPublicKey格式的情形。

-engine id
指定一个引擎(通过其获得唯一的id字符串)将导致rsa尝试获得对特定引擎功能的引用,从而在需要时进行初始化。然后,引擎将被设置为所有可用算法的默认值。

笔记

PEM私钥格式使用以下页眉和页脚行:

-----BEGIN RSA PRIVATE KEY-----

-----END RSA PRIVATE KEY-----
PEM公钥格式使用以下页眉和页脚行:

-----BEGIN PUBLIC KEY-----

-----END PUBLIC KEY-----
PEM RSAPublicKey格式使用以下页眉和页脚线:

-----BEGIN RSA PUBLIC KEY-----

-----END RSA PUBLIC KEY-----
NET格式是与旧的Netscape服务器和Microsoft IIS .key文件兼容的格式,它使用未加密的RC4进行加密。这种方法不是很安全,所以只能在必要时使用。一些较新版本的IIS在导出的.key文件中有其他额外的数据。要使用这些实用程序,请使用二进制编辑器查看文件,并查找字符串"private-key",然后追溯到字节序列0x30,0x82(这是一个ASN1 SEQUENCE)。将所有数据从此点复制到另一个文件,并将其用作带有-inform NET选项的rsa实用程序的输入。

例子

要删除RSA私钥上的密码短语:

openssl rsa -in key.pem -out keyout.pem
使用三重DES加密私钥:

openssl rsa -in key.pem -des3 -out keyout.pem
将私钥从PEM转换为DER格式:

openssl rsa -in key.pem -outform DER -out keyout.der
将私钥的组件输出到标准输出:

openssl rsa -in key.pem -text -noout
要输出私钥的公共部分:

openssl rsa -in key.pem -pubout -out pubkey.pem
以RSAPublicKey格式输出私钥的公共部分:

openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem