存档

作者存档

CentOS7使用firewalld打开关闭防火墙与端口

2019年3月10日 没有评论

1、firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl –failed

3.配置firewalld-cmd

查看版本: firewall-cmd –version
查看帮助: firewall-cmd –help
显示状态: firewall-cmd –state
查看所有打开的端口: firewall-cmd –zone=public –list-ports
更新防火墙规则: firewall-cmd –reload
查看区域信息: firewall-cmd –get-active-zones
查看指定接口所属区域: firewall-cmd –get-zone-of-interface=eth0
拒绝所有包:firewall-cmd –panic-on
取消拒绝状态: firewall-cmd –panic-off
查看是否拒绝: firewall-cmd –query-panic

那怎么开启一个端口呢
添加
firewall-cmd –zone=public –add-port=80/tcp –permanent (–permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd –reload
查看
firewall-cmd –zone= public –query-port=80/tcp
删除
firewall-cmd –zone= public –remove-port=80/tcp –permanent

分类: Linux 标签: , ,

如何破解EXCEL工作表保护密码忘记密码怎么办(转)

2019年3月6日 没有评论

1.新建一个EXCEL工作表,而后点击另存为,讲表格保存为启用宏的工作表.
2.一次点击开发工具—录制新宏,在弹出的对话框内修改宏名称而后确定.
3.依次点击开发工具—-停止录制宏,宏录制完成.
4.依次点击开发工具,—宏—-在弹出的对话框找到我们刚才录制的宏名称而后进入VBA界面.
5.在VBA界面,全选里面的代码,而后删除,讲里面的代码全部删除完.

代码复制到VBA编辑窗口内

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
Public Sub AllInternalPasswords() 
' Breaks worksheet and workbook structure passwords. Bob McCormick 
' probably originator of base code algorithm modified for coverage 
' of workbook structure / windows passwords and for multiple passwords 
' 
' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1) 
' Modified 2003-Apr-04 by JEM: All msgs to constants, and 
' eliminate one Exit Sub (Version 1.1.1) 
' Reveals hashed passwords NOT original passwords 
Const DBLSPACE As String = vbNewLine & vbNewLine 
Const AUTHORS As String = DBLSPACE & vbNewLine & _ 
"Adapted from Bob McCormick base code by" & _ 
"Norman Harker and JE McGimpsey" 
Const HEADER As String = "AllInternalPasswords User Message" 
Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" 
Const REPBACK As String = DBLSPACE & "Please report failure " & _ 
"to the microsoft.public.excel.programming newsgroup." 
Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _ 
"now be free of all password protection, so make sure you:" & _ 
DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ 
DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _ 
DBLSPACE & "Also, remember that the password was " & _ 
"put there for a reason. Don't stuff up crucial formulas " & _ 
"or data." & DBLSPACE & "Access and use of some data " & _ 
"may be an offense. If in doubt, don't." 
Const MSGNOPWORDS1 As String = "There were no passwords on " & _ 
"sheets, or workbook structure or windows." & AUTHORS & VERSION 
Const MSGNOPWORDS2 As String = "There was no protection to " & _ 
"workbook structure or windows." & DBLSPACE & _ 
"Proceeding to unprotect sheets." & AUTHORS & VERSION 
Const MSGTAKETIME As String = "After pressing OK button this " & _ 
"will take some time." & DBLSPACE & "Amount of time " & _ 
"depends on how many different passwords, the " & _ 
"passwords, and your computer's specification." & DBLSPACE & _ 
"Just be patient! Make me a coffee!" & AUTHORS & VERSION 
Const MSGPWORDFOUND1 As String = "You had a Worksheet " & _ 
"Structure or Windows Password set." & DBLSPACE & _ 
"The password found was: " & DBLSPACE & "$$" & DBLSPACE & _ 
"Note it down for potential future use in other workbooks by " & _ 
"the same person who set this password." & DBLSPACE & _ 
"Now to check and clear other passwords." & AUTHORS & VERSION 
Const MSGPWORDFOUND2 As String = "You had a Worksheet " & _ 
"password set." & DBLSPACE & "The password found was: " & _ 
DBLSPACE & "$$" & DBLSPACE & "Note it down for potential " & _ 
"future use in other workbooks by same person who " & _ 
"set this password." & DBLSPACE & "Now to check and clear " & _ 
"other passwords." & AUTHORS & VERSION 
Const MSGONLYONE As String = "Only structure / windows " & _ 
"protected with the password that was just found." & _ 
ALLCLEAR & AUTHORS & VERSION & REPBACK 
Dim w1 As Worksheet, w2 As Worksheet 
Dim i As Integer, j As Integer, k As Integer, l As Integer 
Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer 
Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer 
Dim PWord1 As String 
Dim ShTag As Boolean, WinTag As Boolean 
Application.ScreenUpdating = False 
With ActiveWorkbook 
WinTag = .ProtectStructure Or .ProtectWindows 
End With 
ShTag = False 
For Each w1 In Worksheets 
ShTag = ShTag Or w1.ProtectContents 
Next w1 
If Not ShTag And Not WinTag Then 
MsgBox MSGNOPWORDS1, vbInformation, HEADER 
Exit Sub 
End If 
MsgBox MSGTAKETIME, vbInformation, HEADER 
If Not WinTag Then 
MsgBox MSGNOPWORDS2, vbInformation, HEADER 
Else 
On Error Resume Next 
Do 'dummy do loop 
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66 
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 
With ActiveWorkbook 
.Unprotect Chr(i) & Chr(j) & Chr(k) & _ 
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _ 
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) 
If .ProtectStructure = False And _ 
.ProtectWindows = False Then 
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _ 
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ 
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) 
MsgBox Application.Substitute(MSGPWORDFOUND1, _ 
"$$", PWord1), vbInformation, HEADER 
Exit Do 'Bypass all for...nexts 
End If 
End With 
Next: Next: Next: Next: Next: Next 
Next: Next: Next: Next: Next: Next 
Loop Until True 
On Error GoTo 0 
End If 
If WinTag And Not ShTag Then 
MsgBox MSGONLYONE, vbInformation, HEADER 
Exit Sub 
End If 
On Error Resume Next 
For Each w1 In Worksheets 
'Attempt clearance with PWord1 
w1.Unprotect PWord1 
Next w1 
On Error GoTo 0 
ShTag = False 
For Each w1 In Worksheets 
'Checks for all clear ShTag triggered to 1 if not. 
ShTag = ShTag Or w1.ProtectContents 
Next w1 
If ShTag Then 
For Each w1 In Worksheets 
With w1 
If .ProtectContents Then 
On Error Resume Next 
Do 'Dummy do loop 
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66 
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 
.Unprotect Chr(i) & Chr(j) & Chr(k) & _ 
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ 
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) 
If Not .ProtectContents Then 
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _ 
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ 
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) 
MsgBox Application.Substitute(MSGPWORDFOUND2, _ 
"$$", PWord1), vbInformation, HEADER 
'leverage finding Pword by trying on other sheets 
For Each w2 In Worksheets 
w2.Unprotect PWord1 
Next w2 
Exit Do 'Bypass all for...nexts 
End If 
Next: Next: Next: Next: Next: Next 
Next: Next: Next: Next: Next: Next 
Loop Until True 
On Error GoTo 0 
End If 
End With 
Next w1 
End If 
MsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER 
End Sub

点击保存
点击开发工具,宏,找到我们刚才录制的宏,点击执行宏

而后,在弹出的所有对话框上,都点击确定,都确定,1分钟后,就可以编辑了

本方法仅适用于2007-2016,2003版本没有开发工具

修复win10 F8无法进入安全模式的方法

2019年3月1日 没有评论

windwos的操作系统中一个模式叫做安全模式,很多无法在开机时修复的故障或是设置都可以进入到安全模式中处理。小编最近在使用win10系统的时候经常会遇到这样的情况,关机重启之后按下F8按钮电脑不会有任何的反应,依旧是正常的开机,无法打开系统中的安全模式,这是什么回事呢?大家在遇到这样的故障是不用太过担心,我们使用一个命令语句就可以解决这个问题。

随后将下面的代码复制粘贴进去,然后按下回车键进行执行!

  bcdedit set {default} bootmenupolicy legac

等待系统自动执行完毕之后大家可以重新关闭电脑,此时再次使用F8按键就可以进入到安全模式中去了!PS:有的用户担心错过按下F8的机会,可以一直连续点击,这样就可以进入到提示界面了!

宝塔面板安装好后,默认ip访问的那个html页面在哪个文件夹?

2019年2月13日 没有评论

宝塔面板很好用。大家都知道不过有些默认的选择项目也给大家说一下。

宝塔面板ip地址默认访问页在此目录下(默认安装的是NMP环境就在如下路径中)
/www/server/nginx/html/

删除掉index.html或是改名不就可以不用出现访问ip地址时的尴尬了。因为别人一看就知道你是哪个面板了。

windows server 2016 标准版 升级到 数据中心版

2019年2月1日 没有评论

windows server 2016 标准版 升级到 数据中心版

dism /online /set-edition:ServerDatacenter /productkey:CB7KF-BWN84-R7R2Y-793K2-8XDDG /AcceptEula

cmd复制下那个命令直接运行,等跑完百分比就ok了。

centos7重新调整分区大小

2019年1月14日 没有评论

cenos 7 最小化安装完成后,分区是自动的。默认都会很多分到home目录,这很不合理。建议一般大家都分给/目录,也就是根目录。这样比较方便。

查看磁盘的空间大小: df -h

备份/home : cp -r /home/ homebak/
卸载​ /home : umount /home

如果出现 home 存在进程,使用 fuser -m -v -i -k /home 终止 home 下的进程,最后使用 umount /home 卸载 /home
删除/home所在的lv : lvremove /dev/mapper/centos-home

扩展/root所在的lv,增加4430G : lvextend -L +4430G /dev/mapper/centos-root
扩展/root文件系统 : xfs_growfs /dev/mapper/centos-root

重新创建home lv : lvcreate -L 167G -n home centos

重新创建home lv 分区的大小,根据 vgdisplay 中的free PE 的大小确定
创建文件系统: mkfs.xfs /dev/centos/home
挂载 home: mount /dev/centos/home /home

重新调整大小后,/home 下的东西将丢失,注意做好备份。。。

分类: 解决方案 标签: ,

ssh 连接缓慢解决方法

2019年1月12日 没有评论

瞬间登陆。。。

vi /etc/ssh/sshd_config

关闭 SSH 的 DNS 反解析,添加下面一行:

UseDNS no

虽然配置文件中[UseDNS yes]被注释

但默认开关就是yes。。。SSH服务默认启用了DNS反向解析的功能

分类: Linux, 解决方案 标签: , ,

CentOS7 linux系统中修改swap虚拟内存大小

2018年12月28日 没有评论

linux中安装oracle的时候要求swap是ram的1.5倍。自己部署的虚拟机linux系统,通过free命令查看,该要求不达标,需要手动调整swap

用命令cd /usr,先进入usr路径中

在usr路径中,新建一个文件夹swap
命令为:mkdir swap,创建后用ls命令可以看到新创建的swap文件夹

创建后进行进入到该swap文件夹路径,命令为:cd /swap,用命令ll查看使用量为0

这里我们创建swap文件,命令为:dd if=/dev/zero of=swapfile bs=1G count=3
这条命令从硬盘里分出一个1×3G 大小的空间,挂在swapfile上。

常见swapfile文件完成后,用命令ll查看用量为3G

也可以用命令:du -sh /usr/swap/swapfile命令查看文件大小

swapfile文件创建后,需要构建swap格式于/usr/swap/swapfile 上
命令为:mkswap /usr/swap/swapfile

用命令激活swap,立即启用交换分区文件
命令为:swapon /usr/swap/swapfile
但是这样的设置重启后就失效了,为了保证每次启动都能启用该交换空间,需要手动编辑文件/etc/fstab中的swap行
命令为:vi /etc/fstab

将原来的一行注释掉,添加命令行:
/usr/swap/swapfile swap swap defaults 0 0

重启centos后,用free查看,swap就是设置后的3G了

分类: Linux, 解决方案 标签: ,

shell脚本输出带颜色字体

2018年12月14日 没有评论

经常shell下都有需要使用到特殊标记的提示字符。以下很全,网上找来的。转发一下。

输出特效格式控制:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\03[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m — \033[37m 设置前景色
\033[40m — \033[47m 设置背景色

光标位置等的格式控制:
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标

\33[?25h 显示光标

整理:
编码 颜色/动作
  0 重新设置属性到缺省设置
  1 设置粗体
  2 设置一半亮度(模拟彩色显示器的颜色)
  4 设置下划线(模拟彩色显示器的颜色)
  5 设置闪烁
  7 设置反向图象
  22 设置一般密度
  24 关闭下划线
  25 关闭闪烁
  27 关闭反向图象
  30 设置黑色前景
  31 设置红色前景
  32 设置绿色前景
  33 设置棕色前景
  34 设置蓝色前景
  35 设置紫色前景
  36 设置青色前景
  37 设置白色前景
  38 在缺省的前景颜色上设置下划线
  39 在缺省的前景颜色上关闭下划线
  40 设置黑色背景
  41 设置红色背景
  42 设置绿色背景
  43 设置棕色背景
  44 设置蓝色背景
  45 设置紫色背景
  46 设置青色背景
  47 设置白色背景
  49 设置缺省黑色背景
特效可以叠加,需要使用“;”隔开,例如:闪烁+下划线+白底色+黑字为 \033[5;4;47;30m闪烁+下划线+白底色+黑字为\033[0m
下面是一段小例子

#!/bin/bash
#
#下面是字体输出颜色及终端格式控制
#字体色范围:30-37
echo -e “\033[30m 黑色字 \033[0m”
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[32m 绿色字 \033[0m”
echo -e “\033[33m 黄色字 \033[0m”
echo -e “\033[34m 蓝色字 \033[0m”
echo -e “\033[35m 紫色字 \033[0m”
echo -e “\033[36m 天蓝字 \033[0m”
echo -e “\033[37m 白色字 \033[0m”
#字背景颜色范围:40-47
echo -e “\033[40;37m 黑底白字 \033[0m”
echo -e “\033[41;30m 红底黑字 \033[0m”
echo -e “\033[42;34m 绿底蓝字 \033[0m”
echo -e “\033[43;34m 黄底蓝字 \033[0m”
echo -e “\033[44;30m 蓝底黑字 \033[0m”
echo -e “\033[45;30m 紫底黑字 \033[0m”
echo -e “\033[46;30m 天蓝底黑字 \033[0m”
echo -e “\033[47;34m 白底蓝字 \033[0m”

#控制选项说明
#\033[0m 关闭所有属性
#\033[1m 设置高亮度
#\033[4m 下划线
echo -e “\033[4;31m 下划线红字 \033[0m”
#闪烁
echo -e “\033[5;34m 红字在闪烁 \033[0m”
#反影
echo -e “\033[8m 消隐 \033[0m ”

#\033[30m-\033[37m 设置前景色
#\033[40m-\033[47m 设置背景色
#\033[nA光标上移n行
#\033[nB光标下移n行
echo -e “\033[4A 光标上移4行 \033[0m”
#\033[nC光标右移n行
#\033[nD光标左移n行
#\033[y;xH设置光标位置
#\033[2J清屏
#\033[K清除从光标到行尾的内容
echo -e “\033[K 清除光标到行尾的内容 \033[0m”
#\033[s 保存光标位置
#\033[u 恢复光标位置
#\033[?25| 隐藏光标
#\033[?25h 显示光标
echo -e “\033[?25l 隐藏光标 \033[0m”
echo -e “\033[?25h 显示光标 \033[0m”

python 网络编程 udp示例(转)

2018年12月1日 没有评论

以下对于测试服务器的udp端口及是否协议畅通和可以使用,是很好的办法。

由于UDP是无连接的,与TCP的区别在服务器端表现为,无需监听函数listen()对客户端的连接进行监听; 在客户端的表现为客户端的socket无需与服务器建立连接就能够进行数据的发送与接收,即无需connect()函数。

服务器端代码,udpServer.py:

?View Code PYTHON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from socket import *
from time import ctime
 
HOST = ''
PORT = 20123
BUFSIZ = 128
ADDR = (HOST, PORT)
 
#创建一个服务器端UDP套接字
udpServer = socket(AF_INET, SOCK_DGRAM)
#绑定服务器套接字
udpServer.bind(ADDR)
 
while True:
    print 'waiting for message...'
#接收来自客户端的数据
    data, addr = udpServer.recvfrom(BUFSIZ)
#向客户端发送数据
    udpServer.sendto('[%s] %s' % (ctime(), data), addr)
    print '...received from and returned to:', addr
 
udpServer.close()

客户端代码,udpClient.py:

?View Code PYTHON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from socket import *
 
HOST = 'localhost'
PORT = 20123
BUFSIZ = 128
ADDR = (HOST, PORT)
 
#创建客户端UDP套接字
udpClient = socket(AF_INET, SOCK_DGRAM)
 
while True:
    data = raw_input('>')
    if not data:
        break
#向服务器端发送数据
    udpClient.sendto(data,ADDR)
#接收来自服务器端的数据
    data, ADDR = udpClient.recvfrom(BUFSIZ)
    print data
    if not data:
        break
 
udpClient.close()
分类: 编程实践 标签: ,