Update from Sync Service
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
==单节点安装==
|
==单节点安装==
|
||||||
==在rancher/rancher容器的内置etcd中,映射与宿主机的====/var/lib/rancher====目录下。==
|
==在rancher/rancher容器的内置etcd中,映射与宿主机的====/var/lib/rancher====目录下。==
|
||||||
\> 来自 \<[https://docs.rancher.cn/rancher2x/faqs/important-issue.html#_11-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84l4%E5%B1%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E6%9C%8D%E5%8A%A1%E5%A4%84%E4%BA%8E-%E6%8C%82%E8%B5%B7-%E7%8A%B6%E6%80%81%EF%BC%9F](https://docs.rancher.cn/rancher2x/faqs/important-issue.html#_11-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84l4%E5%B1%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E6%9C%8D%E5%8A%A1%E5%A4%84%E4%BA%8E-%E6%8C%82%E8%B5%B7-%E7%8A%B6%E6%80%81%EF%BC%9F)\>
|
> 来自 <[https://docs.rancher.cn/rancher2x/faqs/important-issue.html#_11-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84l4%E5%B1%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E6%9C%8D%E5%8A%A1%E5%A4%84%E4%BA%8E-%E6%8C%82%E8%B5%B7-%E7%8A%B6%E6%80%81%EF%BC%9F](https://docs.rancher.cn/rancher2x/faqs/important-issue.html#_11-%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84l4%E5%B1%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E6%9C%8D%E5%8A%A1%E5%A4%84%E4%BA%8E-%E6%8C%82%E8%B5%B7-%E7%8A%B6%E6%80%81%EF%BC%9F)>
|
||||||
@@ -3,5 +3,5 @@
|
|||||||
==如果一个节点被添加到集群,它将部署使用端口80和443的ingress控制器。这与====rancher/rancher====容器默认映射的端口冲突。==
|
==如果一个节点被添加到集群,它将部署使用端口80和443的ingress控制器。这与====rancher/rancher====容器默认映射的端口冲突。==
|
||||||
==注意不建议在生产中把Rancher/Rancher和Rancher/Rancher-Agent运行在一台主机上,但可用于开发/演示。==
|
==注意不建议在生产中把Rancher/Rancher和Rancher/Rancher-Agent运行在一台主机上,但可用于开发/演示。==
|
||||||
==要更改主机端口映射,替换====-p 80:80 -p 443:443====为====-p 8080:80 -p 8443:443====:==
|
==要更改主机端口映射,替换====-p 80:80 -p 443:443====为====-p 8080:80 -p 8443:443====:==
|
||||||
docker run -d --restart=unless-stopped \ -p 8080:80 -p 8443:443 \ -v \<主机路径\>:/var/lib/rancher/ \ rancher/rancher:stable (或者rancher/rancher:latest)
|
docker run -d --restart=unless-stopped \ -p 8080:80 -p 8443:443 \ -v <主机路径>:/var/lib/rancher/ \ rancher/rancher:stable (或者rancher/rancher:latest)
|
||||||
\> 来自 \<[https://docs.rancher.cn/rancher2x/faqs/important-issue.html#_4-%E6%95%B0%E6%8D%AE%E6%8C%81%E4%B9%85](https://docs.rancher.cn/rancher2x/faqs/important-issue.html#_4-%E6%95%B0%E6%8D%AE%E6%8C%81%E4%B9%85)\>
|
> 来自 <[https://docs.rancher.cn/rancher2x/faqs/important-issue.html#_4-%E6%95%B0%E6%8D%AE%E6%8C%81%E4%B9%85](https://docs.rancher.cn/rancher2x/faqs/important-issue.html#_4-%E6%95%B0%E6%8D%AE%E6%8C%81%E4%B9%85)>
|
||||||
@@ -1,68 +1,88 @@
|
|||||||
1.镜像下载
|
1.镜像下载
|
||||||
下载 `MongoDB` 镜像命令:
|
下载 `MongoDB` 镜像命令:
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
docker pull mongo
|
docker pull mongo
|
||||||
|
```
|
||||||
```
|
```
|
||||||
执行 `docker images` 查看镜像,下载成功,如下图:
|
执行 `docker images` 查看镜像,下载成功,如下图:
|
||||||
|
|
||||||
2.启动 `MongoDB`
|
2.启动 `MongoDB`
|
||||||
启动 `MongoDB` 命令:
|
启动 `MongoDB` 命令:
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
docker run -p 27017:27017 -v $PWD/db:/data/db -d mongo:latest
|
docker run -p 27017:27017 -v $PWD/db:/data/db -d mongo:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
==命令说明:==
|
==命令说明:==
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
 -p 27017:27017 :
|
 -p 27017:27017 :
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
==将容器的==
|
==将容器的==
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
27017
|
27017
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
==端口映射到主机的==
|
==端口映射到主机的==
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
27017
|
27017
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
==端口==
|
==端口==
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
 -v $PWD/db:/data/db :
|
 -v $PWD/db:/data/db :
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
==将主机中当前目录下的==`db`==挂载到容器的==
|
==将主机中当前目录下的==`db`==挂载到容器的==
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
/data/db
|
/data/db
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
==,作为==`mongo`==数据存储目录==``
|
==,作为==`mongo`==数据存储目录==``
|
||||||
启动成功,如下图:
|
启动成功,如下图:
|
||||||
|
|
||||||
3.测试连接 `MongoDB`
|
3.测试连接 `MongoDB`
|
||||||
连接 `MongoDB` 命令:
|
连接 `MongoDB` 命令:
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
docker run -it mongo:latest mongo --host 172.17.0.1
|
docker run -it mongo:latest mongo --host 172.17.0.1
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
==命令说明:==
|
==命令说明:==
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||

|

|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
==使用==`mongo`==镜像执行==`mongo` ==命令连接到刚启动的容器==`,`==主机==`IP`==为==
|
==使用==`mongo`==镜像执行==`mongo` ==命令连接到刚启动的容器==`,`==主机==`IP`==为==
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
172.17.0.1
|
172.17.0.1
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
提示信息 `It looks like you are trying to access MongoDB over HTTP on the native driver port.` ,nice,部署 `MongoD` 成功!
|
提示信息 `It looks like you are trying to access MongoDB over HTTP on the native driver port.` ,nice,部署 `MongoD` 成功!
|
||||||
@@ -9,4 +9,4 @@ docker run -d --restart=always --name 设置容器名 使用的镜像(上
|
|||||||
**2****)、修改已有容器,使用****update**
|
**2****)、修改已有容器,使用****update**
|
||||||
docker update --restart=always 容器ID(或者容器名)
|
docker update --restart=always 容器ID(或者容器名)
|
||||||
(容器ID或者容器名根据实际情况修改)
|
(容器ID或者容器名根据实际情况修改)
|
||||||
\> 来自 \<[https://www.cnblogs.com/763977251-sg/p/11839918.html](https://www.cnblogs.com/763977251-sg/p/11839918.html)\>
|
> 来自 <[https://www.cnblogs.com/763977251-sg/p/11839918.html](https://www.cnblogs.com/763977251-sg/p/11839918.html)>
|
||||||
7
Docker/基础/docker rm & docker rmi & docker prune 的差异.md
Executable file
7
Docker/基础/docker rm & docker rmi & docker prune 的差异.md
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
||||||
|
<html><head>
|
||||||
|
<title>404 Not Found</title>
|
||||||
|
</head><body>
|
||||||
|
<h1>Not Found</h1>
|
||||||
|
<p>The requested URL was not found on this server.</p>
|
||||||
|
</body></html>
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
1. ==大量====镜像通过命令 docker image prune -f 清理。==
|
1. ==大量====镜像通过命令 docker image prune -f 清理。==
|
||||||
2. ==通过命令 docker images | awk 'NR!=1{print $1":"$2}' | xargs docker rmi 可以批量清除无用的镜像,且不会影响使用中的镜像和基础镜像,满足笔者的需求。== \> 来自 \<[https://www.cnblogs.com/sqgzy/p/11864675.html](https://www.cnblogs.com/sqgzy/p/11864675.html)\> \> 来自 \<[https://www.cnblogs.com/sqgzy/p/11864675.html](https://www.cnblogs.com/sqgzy/p/11864675.html)\>
|
2. ==通过命令 docker images | awk 'NR!=1{print $1":"$2}' | xargs docker rmi 可以批量清除无用的镜像,且不会影响使用中的镜像和基础镜像,满足笔者的需求。== > 来自 <[https://www.cnblogs.com/sqgzy/p/11864675.html](https://www.cnblogs.com/sqgzy/p/11864675.html)> > 来自 <[https://www.cnblogs.com/sqgzy/p/11864675.html](https://www.cnblogs.com/sqgzy/p/11864675.html)>
|
||||||
@@ -4,25 +4,25 @@
|
|||||||
==#====查询所有的容器,过滤出====Exited====状态的容器,列出容器====ID====,删除这些容器==
|
==#====查询所有的容器,过滤出====Exited====状态的容器,列出容器====ID====,删除这些容器==
|
||||||
==sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`==
|
==sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`==
|
||||||
xx
|
xx
|
||||||
**方法二:**
|
**方法二:**
|
||||||
==#====删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)==
|
==#====删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)==
|
||||||
==sudo docker rm $(sudo docker ps -a -q)==
|
==sudo docker rm $(sudo docker ps -a -q)==
|
||||||
|
|
||||||
**方法三:**
|
**方法三:**
|
||||||
==#====根据容器的状态,删除====Exited====状态的容器==
|
==#====根据容器的状态,删除====Exited====状态的容器==
|
||||||
==sudo docker rm $(sudo docker ps -qf status=exited)==
|
==sudo docker rm $(sudo docker ps -qf status=exited)==
|
||||||
|
|
||||||
**方法四:**
|
**方法四:**
|
||||||
==#Docker 1.13====版本以后,可以使用== ==docker containers prune== ==命令,删除孤立的容器。==
|
==#Docker 1.13====版本以后,可以使用== ==docker containers prune== ==命令,删除孤立的容器。==
|
||||||
==sudo docker container prune==
|
==sudo docker container prune==
|
||||||
|
|
||||||
~~#~~~~删除所有镜像~~
|
~~#~~~~删除所有镜像~~
|
||||||
~~sudo docker rmi $(docker images -q)~~
|
~~sudo docker rmi $(docker images -q)~~
|
||||||
|
|
||||||
**附图:**
|
**附图:**
|
||||||
==02-====删除所有的容器,所有未运行的容器都被删除,正在运行的无法删除,达到删除不用容器的目的。==
|
==02-====删除所有的容器,所有未运行的容器都被删除,正在运行的无法删除,达到删除不用容器的目的。==
|
||||||
==03-====低于====1.13====版本的====Docker====,可以根据容器的状态来进行删除==
|
==03-====低于====1.13====版本的====Docker====,可以根据容器的状态来进行删除==
|
||||||
==04-====查询所有的容器,过滤出状态为====Exited====的容器==
|
==04-====查询所有的容器,过滤出状态为====Exited====的容器==
|
||||||
==05-Docker 1.13====版本以后,开始支持====prune====命令,快速删除已退出的容器==
|
==05-Docker 1.13====版本以后,开始支持====prune====命令,快速删除已退出的容器==
|
||||||
|
|
||||||
\> 来自 \<[https://blog.csdn.net/jiangeeq/article/details/79499324](https://blog.csdn.net/jiangeeq/article/details/79499324)\>
|
> 来自 <[https://blog.csdn.net/jiangeeq/article/details/79499324](https://blog.csdn.net/jiangeeq/article/details/79499324)>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
==INSTALL AS A CONTAINER==
|
==INSTALL AS A CONTAINER==
|
||||||
==Compose can also be run inside a container, from a small bash script wrapper. To install compose as a container run this command:==
|
==Compose can also be run inside a container, from a small bash script wrapper. To install compose as a container run this command:==
|
||||||
sudo curl -L --fail [https://github.com/docker/compose/releases/download/1.25.4/run.sh](https://github.com/docker/compose/releases/download/1.25.4/run.sh) -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose
|
sudo curl -L --fail [https://github.com/docker/compose/releases/download/1.25.4/run.sh](https://github.com/docker/compose/releases/download/1.25.4/run.sh) -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose
|
||||||
\> 来自 \<[https://docs.docker.com/compose/install/#alternative-install-options](https://docs.docker.com/compose/install/#alternative-install-options)\>
|
> 来自 <[https://docs.docker.com/compose/install/#alternative-install-options](https://docs.docker.com/compose/install/#alternative-install-options)>
|
||||||
@@ -5,4 +5,4 @@
|
|||||||
==3、同步观测环:三台或三台以上接收机同步观测获得基线向量构成的闭合环,简称同步环。==
|
==3、同步观测环:三台或三台以上接收机同步观测获得基线向量构成的闭合环,简称同步环。==
|
||||||
==4、独立观测环:由独立观测获得基线向量构成的闭合环,简称独立环。==
|
==4、独立观测环:由独立观测获得基线向量构成的闭合环,简称独立环。==
|
||||||
==5、====异步====观测环:在构成多边形环路的所有基线向量中,只要有非同步观测的基线向量,则称该多边形环路为====异步====观测环,简称====异步====环。==
|
==5、====异步====观测环:在构成多边形环路的所有基线向量中,只要有非同步观测的基线向量,则称该多边形环路为====异步====观测环,简称====异步====环。==
|
||||||
\> 来自 \<[https://zhidao.baidu.com/question/182755838.html](https://zhidao.baidu.com/question/182755838.html)\>
|
> 来自 <[https://zhidao.baidu.com/question/182755838.html](https://zhidao.baidu.com/question/182755838.html)>
|
||||||
@@ -31,10 +31,10 @@ FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接
|
|||||||
|
|
||||||
- Firewalld命令:
|
- Firewalld命令:
|
||||||
|
|
||||||
#进程与状态相关systemctl start firewalld.service #启动防火墙 systemctl stop firewalld.service #停止防火墙 firewall-cmd --state #查看防火墙状态 firewall-cmd --reload #更新防火墙规则 firewall-cmd --state #查看防火墙状态 firewall-cmd --reload #重载防火墙规则 firewall-cmd --list-ports #查看所有打开的端口 firewall-cmd --list-services #查看所有允许的服务 firewall-cmd --get-services #获取所有支持的服务 
|
# 进程与状态相关systemctl start firewalld.service #启动防火墙 systemctl stop firewalld.service #停止防火墙 firewall-cmd --state #查看防火墙状态 firewall-cmd --reload #更新防火墙规则 firewall-cmd --state #查看防火墙状态 firewall-cmd --reload #重载防火墙规则 firewall-cmd --list-ports #查看所有打开的端口 firewall-cmd --list-services #查看所有允许的服务 firewall-cmd --get-services #获取所有支持的服务 
|
||||||
#区域相关firewall-cmd --list-all-zones #查看所有区域信息 firewall-cmd --get-active-zones #查看活动区域信息 firewall-cmd --set-default-zone=public #设置public为默认区域 firewall-cmd --get-default-zone #查看默认区域信息 firewall-cmd --zone=public --add-interface=eth0 #将接口eth0加入区域public
|
# 区域相关firewall-cmd --list-all-zones #查看所有区域信息 firewall-cmd --get-active-zones #查看活动区域信息 firewall-cmd --set-default-zone=public #设置public为默认区域 firewall-cmd --get-default-zone #查看默认区域信息 firewall-cmd --zone=public --add-interface=eth0 #将接口eth0加入区域public
|
||||||
#接口相关firewall-cmd --zone=public --remove-interface=eth0 #从区域public中删除接口eth0 firewall-cmd --zone=default --change-interface=eth0 #修改接口eth0所属区域为default firewall-cmd --get-zone-of-interface=eth0 #查看接口eth0所属区域 
|
# 接口相关firewall-cmd --zone=public --remove-interface=eth0 #从区域public中删除接口eth0 firewall-cmd --zone=default --change-interface=eth0 #修改接口eth0所属区域为default firewall-cmd --get-zone-of-interface=eth0 #查看接口eth0所属区域 
|
||||||
#端口控制firewall-cmd --add-port=80/tcp --permanent #永久添加80端口例外(全局)firewall-cmd --remove-port=80/tcp --permanent #永久删除80端口例外(全局)firewall-cmd --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(全局) 
|
# 端口控制firewall-cmd --add-port=80/tcp --permanent #永久添加80端口例外(全局)firewall-cmd --remove-port=80/tcp --permanent #永久删除80端口例外(全局)firewall-cmd --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(全局) 
|
||||||
firewall-cmd --zone=public --add-port=80/tcp --permanent #永久添加80端口例外(区域public)firewall-cmd --zone=public --remove-port=80/tcp --permanent #永久删除80端口例外(区域public)firewall-cmd --zone=public --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(区域public) 
|
firewall-cmd --zone=public --add-port=80/tcp --permanent #永久添加80端口例外(区域public)firewall-cmd --zone=public --remove-port=80/tcp --permanent #永久删除80端口例外(区域public)firewall-cmd --zone=public --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(区域public) 
|
||||||
**注:如果某个接口不属于任何****Zone****,那么这个接口的所有数据包使用默认的****Zone****的规则。**
|
**注:如果某个接口不属于任何****Zone****,那么这个接口的所有数据包使用默认的****Zone****的规则。**
|
||||||
|
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各
|
|||||||
NTP就是用来解决这个问题的,NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。
|
NTP就是用来解决这个问题的,NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。
|
||||||
它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。
|
它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。
|
||||||
它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)进行时间同步,它可以提供高精准度的时间校正,而且可以使用加密确认的方式来防止病毒的协议攻击。
|
它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)进行时间同步,它可以提供高精准度的时间校正,而且可以使用加密确认的方式来防止病毒的协议攻击。
|
||||||
|
|
||||||
**环境:**
|
**环境:**
|
||||||
==系统:====CentOS Linux release 7.4.1708 (Core)==
|
==系统:====CentOS Linux release 7.4.1708 (Core)==
|
||||||
==NTP Server====服务器====IP====:====192.168.0.15==
|
==NTP Server====服务器====IP====:====192.168.0.15==
|
||||||
==NTP Client====客户端====IP====:====192.168.0.16==
|
==NTP Client====客户端====IP====:====192.168.0.16==
|
||||||
|
|
||||||
**1****、搭建****NTP****服务器**
|
**1****、搭建****NTP****服务器**
|
||||||
**1.1****、查看服务器是否安装****ntp****,系统默认安装****ntpdate****;**
|
**1.1****、查看服务器是否安装****ntp****,系统默认安装****ntpdate****;**
|
||||||
[root@localhost ~]# rpm -qa |grep ntpntpdate-4.2.6p5-28.el7.centos.x86_64ntp-4.2.6p5-28.el7.centos.x86_64
|
[root@localhost ~]# rpm -qa |grep ntpntpdate-4.2.6p5-28.el7.centos.x86_64ntp-4.2.6p5-28.el7.centos.x86_64
|
||||||
@@ -31,7 +31,7 @@ NTP就是用来解决这个问题的,NTP(Network Time Protocol,网络时
|
|||||||
[root@localhost ~]# ntpq -p remote refid st t when poll reach delay offset jitter==============================================================================*119.28.206.193 100.122.36.196 2 u 128 128 377 19.711 -0.468 5.363
|
[root@localhost ~]# ntpq -p remote refid st t when poll reach delay offset jitter==============================================================================*119.28.206.193 100.122.36.196 2 u 128 128 377 19.711 -0.468 5.363
|
||||||
**1.6****、开启防火墙****ntp****默认端口****udp123**
|
**1.6****、开启防火墙****ntp****默认端口****udp123**
|
||||||
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=123/udpsuccess[root@localhost ~]# firewall-cmd --reloadsuccess
|
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=123/udpsuccess[root@localhost ~]# firewall-cmd --reloadsuccess
|
||||||
|
|
||||||
**2****、****NTP****客户端配置**
|
**2****、****NTP****客户端配置**
|
||||||
安装的NTP跟上面的步骤一样
|
安装的NTP跟上面的步骤一样
|
||||||
**2.1****、修改****ntp****配置文件,将上面的****NTP****服务器作为客户端同步****NTP****时间服务器**
|
**2.1****、修改****ntp****配置文件,将上面的****NTP****服务器作为客户端同步****NTP****时间服务器**
|
||||||
@@ -47,4 +47,4 @@ NTP就是用来解决这个问题的,NTP(Network Time Protocol,网络时
|
|||||||
**2.3****、查看****ntp****同步状态**
|
**2.3****、查看****ntp****同步状态**
|
||||||
能看到已经成功同步,要记得开启ntpd这个服务器
|
能看到已经成功同步,要记得开启ntpd这个服务器
|
||||||
[root@localhost ~]# ntpq -p remote refid st t when poll reach delay offset jitter============================================================================== 192.168.0.15 119.28.206.193 3 u 7 64 1 0.217 -288085 0.000
|
[root@localhost ~]# ntpq -p remote refid st t when poll reach delay offset jitter============================================================================== 192.168.0.15 119.28.206.193 3 u 7 64 1 0.217 -288085 0.000
|
||||||
\> 来自 \<[https://www.cnblogs.com/Sungeek/p/10197345.html](https://www.cnblogs.com/Sungeek/p/10197345.html)\>
|
> 来自 <[https://www.cnblogs.com/Sungeek/p/10197345.html](https://www.cnblogs.com/Sungeek/p/10197345.html)>
|
||||||
@@ -6,7 +6,7 @@ openssl req \
|
|||||||
-newkey rsa:4096 -nodes -sha256 -keyout harbor-registry.key \
|
-newkey rsa:4096 -nodes -sha256 -keyout harbor-registry.key \
|
||||||
-out harbor-registry.csr \
|
-out harbor-registry.csr \
|
||||||
-subj "/C=CN/ST=Guangdong/L=Guangzhou/O=zhdgps/OU=IT/CN=10.10.200.175/emailAddress=974418136@qq.com"
|
-subj "/C=CN/ST=Guangdong/L=Guangzhou/O=zhdgps/OU=IT/CN=10.10.200.175/emailAddress=974418136@qq.com"
|
||||||
echo subjectAltName = IP:10.10.200.175 \> extfile.cnf
|
echo subjectAltName = IP:10.10.200.175 > extfile.cnf
|
||||||
openssl x509 -req -days 3650 -in harbor-registry.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out harbor-registry.crt
|
openssl x509 -req -days 3650 -in harbor-registry.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out harbor-registry.crt
|
||||||
|
|
||||||
==因为Harbor发布时默认并不包含certificates,并使用http来提供registry请求服务。然而,我们建议在实际的生产环境中还是要使用安全的https。Harbor有一个Nginx实例以作为其他所有服务的反向代理。可以使用prepare脚本来配置Nginx以支持https。==
|
==因为Harbor发布时默认并不包含certificates,并使用http来提供registry请求服务。然而,我们建议在实际的生产环境中还是要使用安全的https。Harbor有一个Nginx实例以作为其他所有服务的反向代理。可以使用prepare脚本来配置Nginx以支持https。==
|
||||||
@@ -28,7 +28,7 @@ openssl req \
|
|||||||
==假如你使用类似于====reg.yourdomain.com====的FQDN(Full Qualified Domain Name)方式来连接registry主机,你可以使用如下的命令来为registry主机产生证书:==
|
==假如你使用类似于====reg.yourdomain.com====的FQDN(Full Qualified Domain Name)方式来连接registry主机,你可以使用如下的命令来为registry主机产生证书:==
|
||||||
==# openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out yourdomain.com.crt======
|
==# openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out yourdomain.com.crt======
|
||||||
==假如你是使用ip的话, 比如使用====192.168.1.101====来连接registry主机的话,你需要使用如下命令:==
|
==假如你是使用ip的话, 比如使用====192.168.1.101====来连接registry主机的话,你需要使用如下命令:==
|
||||||
==# echo subjectAltName = IP:192.168.1.101 \> extfile.cnf======
|
==# echo subjectAltName = IP:192.168.1.101 > extfile.cnf======
|
||||||
==# openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out yourdomain.com========.crt==
|
==# openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out yourdomain.com========.crt==
|
||||||
**3. 配置与安装**
|
**3. 配置与安装**
|
||||||
==在你获得====yourdomain.com.crt====与====yourdomain.com.key====文件之后,你可以将它们放到一个目录,比如====/root/cert/====:==
|
==在你获得====yourdomain.com.crt====与====yourdomain.com.key====文件之后,你可以将它们放到一个目录,比如====/root/cert/====:==
|
||||||
@@ -50,7 +50,7 @@ openssl req \
|
|||||||
==# docker login reg.yourdomain.com:port======
|
==# docker login reg.yourdomain.com:port======
|
||||||
**4. Troubleshooting**
|
**4. Troubleshooting**
|
||||||
==1) 你也许从一个certificate issuer处获得了一个intermediate certificate。在这种情况下,你可以将该intermediate certificate与你自己的certificate合并,创建出一个certificate bundle。你可以通过如下命令来实现:==
|
==1) 你也许从一个certificate issuer处获得了一个intermediate certificate。在这种情况下,你可以将该intermediate certificate与你自己的certificate合并,创建出一个certificate bundle。你可以通过如下命令来实现:==
|
||||||
==# cat intermediate-certificate.pem \>\> yourdomain.com.crt==
|
==# cat intermediate-certificate.pem >> yourdomain.com.crt==
|
||||||
==2) 在有一些docker daemon运行的操作系统上,你也许需要在操作系统级别信任该证书==
|
==2) 在有一些docker daemon运行的操作系统上,你也许需要在操作系统级别信任该证书==
|
||||||
|
|
||||||
- ==在Ubuntu操作系统上,你可以通过如下命令来完成==
|
- ==在Ubuntu操作系统上,你可以通过如下命令来完成==
|
||||||
@@ -70,7 +70,7 @@ openssl req \
|
|||||||
==# openssl req \====== ==-newkey rsa:4096 -nodes -sha256 -keyout harbor-registry.key \====== ==-out harbor-registry.csr \====== ==-subj "/C=CN/ST=Guangdong/L=Shenzhen/O=test_company/OU=IT/CN=192.168.69.128/emailAddress=11111111@qq.com"======
|
==# openssl req \====== ==-newkey rsa:4096 -nodes -sha256 -keyout harbor-registry.key \====== ==-out harbor-registry.csr \====== ==-subj "/C=CN/ST=Guangdong/L=Shenzhen/O=test_company/OU=IT/CN=192.168.69.128/emailAddress=11111111@qq.com"======
|
||||||
==# ls========ca.crt ca.key harbor-registry.csr harbor-registry.key======
|
==# ls========ca.crt ca.key harbor-registry.csr harbor-registry.key======
|
||||||
**3) 为registry产生证书**
|
**3) 为registry产生证书**
|
||||||
==# echo subjectAltName = IP:192.168.69.128 \> extfile.cnf======
|
==# echo subjectAltName = IP:192.168.69.128 > extfile.cnf======
|
||||||
==# openssl x509 -req -days 365 -in harbor-registry.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out harbor-registry.crt======
|
==# openssl x509 -req -days 365 -in harbor-registry.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out harbor-registry.crt======
|
||||||
==# ls========ca.crt ca.key ca.srl extfile.cnf harbor-registry.crt harbor-registry.csr harbor-registry.key==
|
==# ls========ca.crt ca.key ca.srl extfile.cnf harbor-registry.crt harbor-registry.csr harbor-registry.key==
|
||||||
**5.2 配置及安装**
|
**5.2 配置及安装**
|
||||||
@@ -87,7 +87,7 @@ openssl req \
|
|||||||
==# systemctl daemon-reload========# systemctl restart docker======
|
==# systemctl daemon-reload========# systemctl restart docker======
|
||||||
==6) 重启Harbor==
|
==6) 重启Harbor==
|
||||||
==# docker-compose up -d========Creating network "harbor_harbor" with the default driver========Creating harbor-log ... done========Creating registry ... done========Creating harbor-adminserver ... done========Creating harbor-db ... done========Creating harbor-ui ... done========Creating harbor-jobservice ... done========Creating nginx ... done======
|
==# docker-compose up -d========Creating network "harbor_harbor" with the default driver========Creating harbor-log ... done========Creating registry ... done========Creating harbor-adminserver ... done========Creating harbor-db ... done========Creating harbor-ui ... done========Creating harbor-jobservice ... done========Creating nginx ... done======
|
||||||
==# docker ps========CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES========c7b4d837fefc vmware/nginx-photon:v1.4.0 "nginx -g 'daemon of…" 6 seconds ago Up 3 seconds 0.0.0.0:80-\>80/tcp, 0.0.0.0:443-\>443/tcp, 0.0.0.0:4443-\>4443/tcp nginx========257ec984fc98 vmware/harbor-jobservice:v1.4.0 "/harbor/start.sh" 6 seconds ago Up 4 seconds (health: starting) harbor-jobservice========331fe98b1623 vmware/harbor-ui:v1.4.0 "/harbor/start.sh" 8 seconds ago Up 5 seconds (health: starting) harbor-ui========d155d8a3cf00 vmware/harbor-db:v1.4.0 "/usr/local/bin/dock…" 10 seconds ago Up 7 seconds (health: starting) 3306/tcp harbor-db========183a8f508491 vmware/harbor-adminserver:v1.4.0 "/harbor/start.sh" 10 seconds ago Up 7 seconds (health: starting) harbor-adminserver========579642c3cecc vmware/registry-photon:v2.6.2-v1.4.0 "/entrypoint.sh serv…" 10 seconds ago Up 7 seconds (health: starting) 5000/tcp registry========06a1618f789e vmware/harbor-log:v1.4.0 "/bin/sh -c /usr/loc…" 10 seconds ago Up 9 seconds (health: starting) 127.0.0.1:1514-\>10514/tcp harbor-log======
|
==# docker ps========CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES========c7b4d837fefc vmware/nginx-photon:v1.4.0 "nginx -g 'daemon of…" 6 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp nginx========257ec984fc98 vmware/harbor-jobservice:v1.4.0 "/harbor/start.sh" 6 seconds ago Up 4 seconds (health: starting) harbor-jobservice========331fe98b1623 vmware/harbor-ui:v1.4.0 "/harbor/start.sh" 8 seconds ago Up 5 seconds (health: starting) harbor-ui========d155d8a3cf00 vmware/harbor-db:v1.4.0 "/usr/local/bin/dock…" 10 seconds ago Up 7 seconds (health: starting) 3306/tcp harbor-db========183a8f508491 vmware/harbor-adminserver:v1.4.0 "/harbor/start.sh" 10 seconds ago Up 7 seconds (health: starting) harbor-adminserver========579642c3cecc vmware/registry-photon:v2.6.2-v1.4.0 "/entrypoint.sh serv…" 10 seconds ago Up 7 seconds (health: starting) 5000/tcp registry========06a1618f789e vmware/harbor-log:v1.4.0 "/bin/sh -c /usr/loc…" 10 seconds ago Up 9 seconds (health: starting) 127.0.0.1:1514->10514/tcp harbor-log======
|
||||||
==7) 通过https形式访问Harbor==
|
==7) 通过https形式访问Harbor==
|
||||||
|
|
||||||
- ==通过浏览器访问==
|
- ==通过浏览器访问==
|
||||||
@@ -123,5 +123,5 @@ openssl req \
|
|||||||
==# curl -iL -X GET -H "Content-Type: application/json" -H "Authorization: Bearer LA7yfEdUBYD3bDhLM"== ==http://192.168.69.128/v2/_catalog== ==--cacert ca.crt========HTTP/1.1 200 OK========Server: nginx========Date: Mon, 09 Apr 2018 09:36:35 GMT========Content-Type: application/json; charset=utf-8========Content-Length: 34========Connection: keep-alive========Docker-Distribution-Api-Version: registry/2.0========Set-Cookie: beegosessionID=1b84e760ab0234045f06680e56e28818; Path=/; HttpOnly======
|
==# curl -iL -X GET -H "Content-Type: application/json" -H "Authorization: Bearer LA7yfEdUBYD3bDhLM"== ==http://192.168.69.128/v2/_catalog== ==--cacert ca.crt========HTTP/1.1 200 OK========Server: nginx========Date: Mon, 09 Apr 2018 09:36:35 GMT========Content-Type: application/json; charset=utf-8========Content-Length: 34========Connection: keep-alive========Docker-Distribution-Api-Version: registry/2.0========Set-Cookie: beegosessionID=1b84e760ab0234045f06680e56e28818; Path=/; HttpOnly======
|
||||||
=={"repositories":["library/redis"]}======
|
=={"repositories":["library/redis"]}======
|
||||||
==上面为了显示,我们对返回过来的====token====做了适当的裁剪。此外这里====curl====命令不适用====-k====选项,表示需要对服务器证书进行检查。==
|
==上面为了显示,我们对返回过来的====token====做了适当的裁剪。此外这里====curl====命令不适用====-k====选项,表示需要对服务器证书进行检查。==
|
||||||
\> 来自 \<[https://ivanzz1001.github.io/records/post/docker/2018/04/09/docker-harbor-https](https://ivanzz1001.github.io/records/post/docker/2018/04/09/docker-harbor-https)\>
|
> 来自 <[https://ivanzz1001.github.io/records/post/docker/2018/04/09/docker-harbor-https](https://ivanzz1001.github.io/records/post/docker/2018/04/09/docker-harbor-https)>
|
||||||
\> 来自 \<[https://ivanzz1001.github.io/records/post/docker/2018/04/09/docker-harbor-https](https://ivanzz1001.github.io/records/post/docker/2018/04/09/docker-harbor-https)\>
|
> 来自 <[https://ivanzz1001.github.io/records/post/docker/2018/04/09/docker-harbor-https](https://ivanzz1001.github.io/records/post/docker/2018/04/09/docker-harbor-https)>
|
||||||
@@ -105,10 +105,10 @@
|
|||||||
==查询与 httpd 有关的布尔型规则。==
|
==查询与 httpd 有关的布尔型规则。==
|
||||||
==getsebool -a | grep httpd==
|
==getsebool -a | grep httpd==
|
||||||
==执行结果==
|
==执行结果==
|
||||||
==httpd_anon_write --\> off==
|
==httpd_anon_write --> off==
|
||||||
==httpd_builtin_scripting --\> on==
|
==httpd_builtin_scripting --> on==
|
||||||
==httpd_can_check_spam --\> off==
|
==httpd_can_check_spam --> off==
|
||||||
==httpd_can_connect_ftp --\> off==
|
==httpd_can_connect_ftp --> off==
|
||||||
==#以下省略==
|
==#以下省略==
|
||||||
==4.6 开关一个布尔型规则==
|
==4.6 开关一个布尔型规则==
|
||||||
==命令基本用法==
|
==命令基本用法==
|
||||||
@@ -145,4 +145,4 @@
|
|||||||
==命令基本用法==
|
==命令基本用法==
|
||||||
==sealert -a /var/log/audit/audit.log==
|
==sealert -a /var/log/audit/audit.log==
|
||||||
==执行完命令之后,系统需要花一段时间去分析日志中的违规行为并给出分析报告。分析报告的结构讲解请看下图:==
|
==执行完命令之后,系统需要花一段时间去分析日志中的违规行为并给出分析报告。分析报告的结构讲解请看下图:==
|
||||||
\> 来自 \<[https://blog.csdn.net/yanjun821126/article/details/80828908](https://blog.csdn.net/yanjun821126/article/details/80828908)\>
|
> 来自 <[https://blog.csdn.net/yanjun821126/article/details/80828908](https://blog.csdn.net/yanjun821126/article/details/80828908)>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
有以下命令可以查看:
|
有以下命令可以查看:
|
||||||
|
|
||||||
# lsb_release -a
|
# lsb_release -a
|
||||||
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
|
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
|
||||||
Distributor ID: CentOS
|
Distributor ID: CentOS
|
||||||
Description: CentOS release 5.4 (Final)
|
Description: CentOS release 5.4 (Final)
|
||||||
@@ -25,7 +25,7 @@ CentOS release 5.4 (Final)
|
|||||||
|
|
||||||
登录到linux执行rpm -q redhat-release
|
登录到linux执行rpm -q redhat-release
|
||||||
|
|
||||||
#rpm -q redhat-release
|
# rpm -q redhat-release
|
||||||
或CentOS
|
或CentOS
|
||||||
|
|
||||||
root@MyMail ~ # rpm -q centos-release
|
root@MyMail ~ # rpm -q centos-release
|
||||||
@@ -33,6 +33,6 @@ centos-release-5-4.el5.centos.1
|
|||||||
|
|
||||||
|
|
||||||
**当前****centos** **版本与****redhat****对应的版本的命令**
|
**当前****centos** **版本与****redhat****对应的版本的命令**
|
||||||
# cat /proc/version
|
# cat /proc/version
|
||||||
Linux version 2.6.9-78.ELsmp (mockbuild@builder16.centos.org) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-10)) #1 SMP Fri Jul 25 00:04:28 EDT 2008
|
Linux version 2.6.9-78.ELsmp (mockbuild@builder16.centos.org) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-10)) #1 SMP Fri Jul 25 00:04:28 EDT 2008
|
||||||
\> 来自 \<[https://www.cnblogs.com/zzdylan/p/9930144.html](https://www.cnblogs.com/zzdylan/p/9930144.html)\>
|
> 来自 <[https://www.cnblogs.com/zzdylan/p/9930144.html](https://www.cnblogs.com/zzdylan/p/9930144.html)>
|
||||||
@@ -6,4 +6,4 @@
|
|||||||
查看某一用户:w 用户名
|
查看某一用户:w 用户名
|
||||||
查看登录用户:who
|
查看登录用户:who
|
||||||
查看用户登录历史记录:last
|
查看用户登录历史记录:last
|
||||||
\> 来自 \<[https://www.cnblogs.com/todarcy/p/11079228.html](https://www.cnblogs.com/todarcy/p/11079228.html)\>
|
> 来自 <[https://www.cnblogs.com/todarcy/p/11079228.html](https://www.cnblogs.com/todarcy/p/11079228.html)>
|
||||||
@@ -4,67 +4,85 @@
|
|||||||
|
|
||||||
`df -h (centos-home`==和==`centos-root`==每人的名字可能不一样==
|
`df -h (centos-home`==和==`centos-root`==每人的名字可能不一样==
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
) vgdisplay (
|
) vgdisplay (
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
==查看空闲磁盘大小)==``
|
==查看空闲磁盘大小)==``
|
||||||
|
|
||||||
4. 备份home分区文件
|
4. 备份home分区文件
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
tar cvf /tmp/home.tar /home
|
tar cvf /tmp/home.tar /home
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
6. 卸载/home,如果无法卸载,先终止使用/home文件系统的进程
|
6. 卸载/home,如果无法卸载,先终止使用/home文件系统的进程
|
||||||
|
|
||||||
`umount /home` ==(卸载)==
|
`umount /home` ==(卸载)==
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||

|

|
||||||
fuser -km /home/
|
fuser -km /home/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
==(终止)==``
|
==(终止)==``
|
||||||
|
|
||||||
8. 删除/home所在的lv
|
8. 删除/home所在的lv
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
lvremove /dev/mapper/centos-home
|
lvremove /dev/mapper/centos-home
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
10. 扩展/root所在的lv
|
10. 扩展/root所在的lv
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
lvextend -L +50G /dev/mapper/centos-root
|
lvextend -L +50G /dev/mapper/centos-root
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
12. 扩展/root文件系统
|
12. 扩展/root文件系统
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
xfs_growfs /dev/mapper/centos-root
|
xfs_growfs /dev/mapper/centos-root
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
14. 重新创建home lv
|
14. 重新创建home lv
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
lvcreate -L 50G -n /dev/mapper/centos-home
|
lvcreate -L 50G -n /dev/mapper/centos-home
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
16. 创建文件系统
|
16. 创建文件系统
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
mkfs.xfs /dev/mapper/centos-home
|
mkfs.xfs /dev/mapper/centos-home
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
18. 挂载home
|
18. 挂载home
|
||||||
|
|
||||||
|
```
|
||||||
```
|
```
|
||||||
mount /dev/mapper/centos-home
|
mount /dev/mapper/centos-home
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
20. home文件恢复
|
20. home文件恢复
|
||||||
|
|
||||||
`tar xvf /tmp/home.tar -C /home/`
|
`tar xvf /tmp/home.tar -C /home/`
|
||||||
\> 来自 \<[https://www.jianshu.com/p/27c87f390175](https://www.jianshu.com/p/27c87f390175)\>
|
> 来自 <[https://www.jianshu.com/p/27c87f390175](https://www.jianshu.com/p/27c87f390175)>
|
||||||
\> 来自 \<[https://www.jianshu.com/p/27c87f390175](https://www.jianshu.com/p/27c87f390175)\>
|
> 来自 <[https://www.jianshu.com/p/27c87f390175](https://www.jianshu.com/p/27c87f390175)>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
==bin core home lib64 mnt root snap tmp vmlinuz==
|
==bin core home lib64 mnt root snap tmp vmlinuz==
|
||||||
==boot dev initrd.img lost+found opt run srv usr==
|
==boot dev initrd.img lost+found opt run srv usr==
|
||||||
==cdrom etc lib media proc sbin sys var==
|
==cdrom etc lib media proc sbin sys var==
|
||||||
|
|
||||||
==下面, 我们逐个分析这些文件夹的用处==
|
==下面, 我们逐个分析这些文件夹的用处==
|
||||||
@@ -50,11 +50,11 @@ sudo chmod 644 /usr/share/fonts/winFonts/*.ttf
|
|||||||
==sbin==
|
==sbin==
|
||||||
==sys==
|
==sys==
|
||||||
==var==
|
==var==
|
||||||
\> 来自 \<[http://blog.csdn.net/caib1109/article/details/51764196](http://blog.csdn.net/caib1109/article/details/51764196)\>
|
> 来自 <[http://blog.csdn.net/caib1109/article/details/51764196](http://blog.csdn.net/caib1109/article/details/51764196)>
|
||||||
|
|
||||||
**开始安装**
|
**开始安装**
|
||||||
==cd /usr/share/fonts/winFonts/==
|
==cd /usr/share/fonts/winFonts/==
|
||||||
==sudo mkfontscale (创建雅黑字体的fonts.scale文件,它用来控制字体旋转缩放)==
|
==sudo mkfontscale (创建雅黑字体的fonts.scale文件,它用来控制字体旋转缩放)==
|
||||||
==sudo mkfontdir (创建雅黑字体的fonts.dir文件,它用来控制字体粗斜体产生)==
|
==sudo mkfontdir (创建雅黑字体的fonts.dir文件,它用来控制字体粗斜体产生)==
|
||||||
==sudo fc-cache -fv (建立字体缓存信息,也就是让系统认识雅黑)==
|
==sudo fc-cache -fv (建立字体缓存信息,也就是让系统认识雅黑)==
|
||||||
\> 来自 \<[http://blog.csdn.net/caib1109/article/details/51764196](http://blog.csdn.net/caib1109/article/details/51764196)\>
|
> 来自 <[http://blog.csdn.net/caib1109/article/details/51764196](http://blog.csdn.net/caib1109/article/details/51764196)>
|
||||||
@@ -60,14 +60,14 @@ h 左移一个字符
|
|||||||
l 右移一个字符,这个命令很少用,一般用w代替。
|
l 右移一个字符,这个命令很少用,一般用w代替。
|
||||||
k 上移一个字符
|
k 上移一个字符
|
||||||
j 下移一个字符
|
j 下移一个字符
|
||||||
以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入3个!,3a!\<Esc\>,这里的Esc是必须的,否则命令不生效。
|
以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入3个!,3a!<Esc>,这里的Esc是必须的,否则命令不生效。
|
||||||
w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替l命令。
|
w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替l命令。
|
||||||
b 向后移动一个单词 2b 向后移动2个单词
|
b 向后移动一个单词 2b 向后移动2个单词
|
||||||
e,同w,只不过是光标停在单词尾部
|
e,同w,只不过是光标停在单词尾部
|
||||||
ge,同b,光标停在单词尾部。
|
ge,同b,光标停在单词尾部。
|
||||||
^ 移动到本行第一个非空白字符上。
|
^ 移动到本行第一个非空白字符上。
|
||||||
0(数字0)移动到本行第一个字符上,
|
0(数字0)移动到本行第一个字符上,
|
||||||
\<HOME\> 移动到本行第一个字符。同0健。
|
<HOME> 移动到本行第一个字符。同0健。
|
||||||
$ 移动到行尾 3$ 移动到下面3行的行尾
|
$ 移动到行尾 3$ 移动到下面3行的行尾
|
||||||
gg 移动到文件头。 = [[
|
gg 移动到文件头。 = [[
|
||||||
G(shift + g) 移动到文件尾。 = ]]
|
G(shift + g) 移动到文件尾。 = ]]
|
||||||
@@ -153,15 +153,15 @@ perl程序中#开始的行为注释,所以要注释某些行,只需在行首
|
|||||||
:help or F1 显示整个帮助
|
:help or F1 显示整个帮助
|
||||||
:help xxx 显示xxx的帮助,比如 :help i, :help CTRL-[(即Ctrl+[的帮助)。
|
:help xxx 显示xxx的帮助,比如 :help i, :help CTRL-[(即Ctrl+[的帮助)。
|
||||||
:help 'number' Vim选项的帮助用单引号括起
|
:help 'number' Vim选项的帮助用单引号括起
|
||||||
:help \<Esc\> 特殊键的帮助用\<\>扩起
|
:help <Esc> 特殊键的帮助用<>扩起
|
||||||
:help -t Vim启动参数的帮助用-
|
:help -t Vim启动参数的帮助用-
|
||||||
:help i_\<Esc\> 插入模式下Esc的帮助,某个模式下的帮助用模式_主题的模式
|
:help i_<Esc> 插入模式下Esc的帮助,某个模式下的帮助用模式_主题的模式
|
||||||
帮助文件中位于||之间的内容是超链接,可以用Ctrl+]进入链接,Ctrl+o(Ctrl + t)返回
|
帮助文件中位于||之间的内容是超链接,可以用Ctrl+]进入链接,Ctrl+o(Ctrl + t)返回
|
||||||
**其他非编辑命令**
|
**其他非编辑命令**
|
||||||
. 重复前一次命令
|
. 重复前一次命令
|
||||||
:set ruler? 查看是否设置了ruler,在.vimrc中,使用set命令设制的选项都可以通过这个命令查看
|
:set ruler? 查看是否设置了ruler,在.vimrc中,使用set命令设制的选项都可以通过这个命令查看
|
||||||
:scriptnames 查看vim脚本文件的位置,比如.vimrc文件,语法文件及plugin等。
|
:scriptnames 查看vim脚本文件的位置,比如.vimrc文件,语法文件及plugin等。
|
||||||
:set list 显示非打印字符,如tab,空格,行尾等。如果tab无法显示,请确定用set lcs=tab:\>-命令设置了.vimrc文件,并确保你的文件中的确有tab,如果开启了expendtab,那么tab将被扩展为空格。
|
:set list 显示非打印字符,如tab,空格,行尾等。如果tab无法显示,请确定用set lcs=tab:>-命令设置了.vimrc文件,并确保你的文件中的确有tab,如果开启了expendtab,那么tab将被扩展为空格。
|
||||||
Vim教程
|
Vim教程
|
||||||
在Unix系统上
|
在Unix系统上
|
||||||
$ vimtutor
|
$ vimtutor
|
||||||
@@ -172,4 +172,4 @@ $ vimtutor
|
|||||||
:syntax clear 清除已定义的语法规则
|
:syntax clear 清除已定义的语法规则
|
||||||
:syntax case match 大小写敏感,int和Int将视为不同的语法元素
|
:syntax case match 大小写敏感,int和Int将视为不同的语法元素
|
||||||
:syntax case ignore 大小写无关,int和Int将视为相同的语法元素,并使用同样的配色方案
|
:syntax case ignore 大小写无关,int和Int将视为相同的语法元素,并使用同样的配色方案
|
||||||
\> 来自 \<[https://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html](https://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html)\>
|
> 来自 <[https://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html](https://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html)>
|
||||||
20
Lunix/Ubuntu/ubuntu中管理用户和用户组.md
Executable file
20
Lunix/Ubuntu/ubuntu中管理用户和用户组.md
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
1. 添加一个用户组并指定id为1002
|
||||||
|
sudo groupadd -g 1002 www
|
||||||
|
|
||||||
|
2. 添加一个用户到www组并指定id为1003
|
||||||
|
sudo useradd wyx -g 1002 -u 1003 -m
|
||||||
|
|
||||||
|
3. 修改用户的密码
|
||||||
|
sudo passwd wyx
|
||||||
|
|
||||||
|
4. 删除一个用户
|
||||||
|
sudo userdel wyx
|
||||||
|
|
||||||
|
5. 为该用户添加sudo权限
|
||||||
|
sudo usermod -a -G adm wyx
|
||||||
|
sudo usermod -a -G sudo wyx
|
||||||
|
|
||||||
|
6. 查看所有用户和用户组:
|
||||||
|
cat /etc/passwd
|
||||||
|
cat /etc/group
|
||||||
|
> 来自 <[https://www.cnblogs.com/vincedotnet/p/4017574.html](https://www.cnblogs.com/vincedotnet/p/4017574.html)>
|
||||||
@@ -4,4 +4,4 @@ ps –aux //查看进程号
|
|||||||
ps –aux | more //全部查看
|
ps –aux | more //全部查看
|
||||||
ps –ef | grep mysql //查看mysql的进程
|
ps –ef | grep mysql //查看mysql的进程
|
||||||
kill -9 3306 //强制杀掉进程号3306
|
kill -9 3306 //强制杀掉进程号3306
|
||||||
\> 来自 \<[http://blog.sina.com.cn/s/blog_64492fe10100qqk3.html](http://blog.sina.com.cn/s/blog_64492fe10100qqk3.html)\>
|
> 来自 <[http://blog.sina.com.cn/s/blog_64492fe10100qqk3.html](http://blog.sina.com.cn/s/blog_64492fe10100qqk3.html)>
|
||||||
@@ -6,4 +6,4 @@
|
|||||||
==◆== ==网络操作命令:====ifconfig====、====ip====、====ping====、====netstat====、====telnet====、====ftp====、====route====、====rlogin====、====rcp====、====finger====、====mail====、== ==nslookup====;==
|
==◆== ==网络操作命令:====ifconfig====、====ip====、====ping====、====netstat====、====telnet====、====ftp====、====route====、====rlogin====、====rcp====、====finger====、====mail====、== ==nslookup====;==
|
||||||
==◆== ==系统安全相关命令:====passwd====、====su====、====umask====、====chgrp====、====chmod====、====chown====、====chattr====、====sudo ps====、====who====;==
|
==◆== ==系统安全相关命令:====passwd====、====su====、====umask====、====chgrp====、====chmod====、====chown====、====chattr====、====sudo ps====、====who====;==
|
||||||
==◆== ==其它命令:====tar====、====unzip====、====gunzip====、====unarj====、====mtools====、====man====、====unendcode====、====uudecode====。==
|
==◆== ==其它命令:====tar====、====unzip====、====gunzip====、====unarj====、====mtools====、====man====、====unendcode====、====uudecode====。==
|
||||||
\> 来自 \<[https://www.cnblogs.com/tangbinblog/archive/2012/10/17/2727942.html](https://www.cnblogs.com/tangbinblog/archive/2012/10/17/2727942.html)\>
|
> 来自 <[https://www.cnblogs.com/tangbinblog/archive/2012/10/17/2727942.html](https://www.cnblogs.com/tangbinblog/archive/2012/10/17/2727942.html)>
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
1. ==cp 文件 最终路径==
|
1. ==cp 文件 最终路径==
|
||||||
2. ==cp -r 文件夹 最终路径 (这样可以把一个文件夹的所有文件全部移到最终路径)==
|
2. ==cp -r 文件夹 最终路径 (这样可以把一个文件夹的所有文件全部移到最终路径)==
|
||||||
\>
|
>
|
||||||
**apt-get:**
|
**apt-get:**
|
||||||
==debian系系统的软件包管理程序(其图形化前端就是大名鼎鼎的新立得了),会自动帮你搞定依赖关系==
|
==debian系系统的软件包管理程序(其图形化前端就是大名鼎鼎的新立得了),会自动帮你搞定依赖关系==
|
||||||
==最常用参数:==
|
==最常用参数:==
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
==autoclean —-比clean常用,我的理解是删除低版本的缓存而保留高版本的(或者包括非当前源里的软件包?)==
|
==autoclean —-比clean常用,我的理解是删除低版本的缓存而保留高版本的(或者包括非当前源里的软件包?)==
|
||||||
**aptitude:**
|
**aptitude:**
|
||||||
==此为PT同学补充,他的说法是aptitude比apt-get少个横线,tab补全比较容易(=.=)~大概神牛都比较懒吧==
|
==此为PT同学补充,他的说法是aptitude比apt-get少个横线,tab补全比较容易(=.=)~大概神牛都比较懒吧==
|
||||||
==不得不提下蛋蛋童鞋以前说过的ubuntu彩蛋:) \<仅限于UBUNTU 8.04\>==
|
==不得不提下蛋蛋童鞋以前说过的ubuntu彩蛋:) <仅限于UBUNTU 8.04>==
|
||||||
==man apt —-最后会看到 “本apt有着超级牛力” or “this APT has a super-cow power”==
|
==man apt —-最后会看到 “本apt有着超级牛力” or “this APT has a super-cow power”==
|
||||||
==man aptitude —-会看到 “这个aptitude没有超级牛力”==
|
==man aptitude —-会看到 “这个aptitude没有超级牛力”==
|
||||||
==看看aptitude的参数,你就会明白为什么aptitude会标称”高级软件包管理程序”了==
|
==看看aptitude的参数,你就会明白为什么aptitude会标称”高级软件包管理程序”了==
|
||||||
@@ -179,4 +179,4 @@
|
|||||||
==附加说明:tar是个太强大的东东,常用的操作也就是打包解包,高级功能还是参阅man =.===
|
==附加说明:tar是个太强大的东东,常用的操作也就是打包解包,高级功能还是参阅man =.===
|
||||||
**touch:**
|
**touch:**
|
||||||
==改变文件时间戳,默认包括修改时间和创建时间,默认修改为当前时间,默认如果文件不存在就新建(=.=是不是很罗嗦)==
|
==改变文件时间戳,默认包括修改时间和创建时间,默认修改为当前时间,默认如果文件不存在就新建(=.=是不是很罗嗦)==
|
||||||
\> 来自 \<[http://www.ipc.me/ubuntu-useful-commands-collection-for-newbie.html](http://www.ipc.me/ubuntu-useful-commands-collection-for-newbie.html)\>
|
> 来自 <[http://www.ipc.me/ubuntu-useful-commands-collection-for-newbie.html](http://www.ipc.me/ubuntu-useful-commands-collection-for-newbie.html)>
|
||||||
@@ -1,401 +1,401 @@
|
|||||||
==最近在项目中用到了Linux,然后自己只会那些简单的,发现头用的溜溜的,所以查了一下常用的命令,多查,多用。==
|
==最近在项目中用到了Linux,然后自己只会那些简单的,发现头用的溜溜的,所以查了一下常用的命令,多查,多用。==
|
||||||
==系统信息==
|
==系统信息==
|
||||||
==arch 显示机器的处理器==**架构**==(1)==
|
==arch 显示机器的处理器==**架构**==(1)==
|
||||||
==uname -m 显示机器的处理器架构(2)==
|
==uname -m 显示机器的处理器架构(2)==
|
||||||
==uname -r 显示正在使用的内核版本==
|
==uname -r 显示正在使用的内核版本==
|
||||||
==dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)==
|
==dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)==
|
||||||
==hdparm -i /dev/hda 罗列一个磁盘的架构特性==
|
==hdparm -i /dev/hda 罗列一个磁盘的架构特性==
|
||||||
==hdparm -tT /dev/sda 在磁盘上执行测试性读取操作==
|
==hdparm -tT /dev/sda 在磁盘上执行测试性读取操作==
|
||||||
==cat /proc/cpuinfo 显示CPU info的信息==
|
==cat /proc/cpuinfo 显示CPU info的信息==
|
||||||
==cat /proc/interrupts 显示中断==
|
==cat /proc/interrupts 显示中断==
|
||||||
==cat /proc/meminfo 校验内存使用==
|
==cat /proc/meminfo 校验内存使用==
|
||||||
==cat /proc/swaps 显示哪些swap被使用==
|
==cat /proc/swaps 显示哪些swap被使用==
|
||||||
==cat /proc/version 显示内核的版本==
|
==cat /proc/version 显示内核的版本==
|
||||||
==cat /proc/net/dev 显示网络适配器及统计==
|
==cat /proc/net/dev 显示网络适配器及统计==
|
||||||
==cat /proc/mounts 显示已加载的文件系统==
|
==cat /proc/mounts 显示已加载的文件系统==
|
||||||
==lspci -tv 罗列 PCI 设备==
|
==lspci -tv 罗列 PCI 设备==
|
||||||
==lsusb -tv 显示 USB 设备==
|
==lsusb -tv 显示 USB 设备==
|
||||||
==date 显示系统日期==
|
==date 显示系统日期==
|
||||||
==cal 2007 显示2007年的日历表==
|
==cal 2007 显示2007年的日历表==
|
||||||
==date 041217002007.00 设置日期和时间 - 月日时分年.秒==
|
==date 041217002007.00 设置日期和时间 - 月日时分年.秒==
|
||||||
==clock -w 将时间修改保存到 BIOS==
|
==clock -w 将时间修改保存到 BIOS==
|
||||||
|
|
||||||
==关机 (系统的关机、重启以及登出 )==
|
==关机 (系统的关机、重启以及登出 )==
|
||||||
==shutdown -h now 关闭系统(1)==
|
==shutdown -h now 关闭系统(1)==
|
||||||
==init 0 关闭系统(2)==
|
==init 0 关闭系统(2)==
|
||||||
==telinit 0 关闭系统(3)==
|
==telinit 0 关闭系统(3)==
|
||||||
==shutdown -h hours:minutes & 按预定时间关闭系统==
|
==shutdown -h hours:minutes & 按预定时间关闭系统==
|
||||||
==shutdown -c 取消按预定时间关闭系统==
|
==shutdown -c 取消按预定时间关闭系统==
|
||||||
==shutdown -r now 重启(1)==
|
==shutdown -r now 重启(1)==
|
||||||
==reboot 重启(2)==
|
==reboot 重启(2)==
|
||||||
==logout 注销==
|
==logout 注销==
|
||||||
|
|
||||||
==文件和目录==
|
==文件和目录==
|
||||||
==cd /home 进入 '/ home' 目录'==
|
==cd /home 进入 '/ home' 目录'==
|
||||||
==cd .. 返回上一级目录==
|
==cd .. 返回上一级目录==
|
||||||
==cd ../.. 返回上两级目录==
|
==cd ../.. 返回上两级目录==
|
||||||
==cd 进入个人的主目录==
|
==cd 进入个人的主目录==
|
||||||
==cd ~user1 进入个人的主目录==
|
==cd ~user1 进入个人的主目录==
|
||||||
==cd - 返回上次所在的目录==
|
==cd - 返回上次所在的目录==
|
||||||
==pwd 显示工作路径==
|
==pwd 显示工作路径==
|
||||||
==ls 查看目录中的文件==
|
==ls 查看目录中的文件==
|
||||||
==ls -F 查看目录中的文件==
|
==ls -F 查看目录中的文件==
|
||||||
==ls -l 显示文件和目录的详细资料==
|
==ls -l 显示文件和目录的详细资料==
|
||||||
==ls -a 显示隐藏文件==
|
==ls -a 显示隐藏文件==
|
||||||
==ls *[0-9]* 显示包含数字的文件名和目录名==
|
==ls *[0-9]* 显示包含数字的文件名和目录名==
|
||||||
==tree 显示文件和目录由根目录开始的树形结构(1)==
|
==tree 显示文件和目录由根目录开始的树形结构(1)==
|
||||||
==lstree 显示文件和目录由根目录开始的树形结构(2)==
|
==lstree 显示文件和目录由根目录开始的树形结构(2)==
|
||||||
==mkdir dir1 创建一个叫做 'dir1' 的目录'==
|
==mkdir dir1 创建一个叫做 'dir1' 的目录'==
|
||||||
==mkdir dir1 dir2 同时创建两个目录==
|
==mkdir dir1 dir2 同时创建两个目录==
|
||||||
==mkdir -p /tmp/dir1/dir2 创建一个目录树==
|
==mkdir -p /tmp/dir1/dir2 创建一个目录树==
|
||||||
==rm -f file1 删除一个叫做 'file1' 的文件'==
|
==rm -f file1 删除一个叫做 'file1' 的文件'==
|
||||||
==rmdir dir1 删除一个叫做 'dir1' 的目录'==
|
==rmdir dir1 删除一个叫做 'dir1' 的目录'==
|
||||||
==rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容==
|
==rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容==
|
||||||
==rm -rf dir1 dir2 同时删除两个目录及它们的内容==
|
==rm -rf dir1 dir2 同时删除两个目录及它们的内容==
|
||||||
==mv dir1 new_dir 重命名/移动 一个目录==
|
==mv dir1 new_dir 重命名/移动 一个目录==
|
||||||
==cp file1 file2 复制一个文件==
|
==cp file1 file2 复制一个文件==
|
||||||
==cp dir/* . 复制一个目录下的所有文件到当前工作目录==
|
==cp dir/* . 复制一个目录下的所有文件到当前工作目录==
|
||||||
==cp -a /tmp/dir1 . 复制一个目录到当前工作目录==
|
==cp -a /tmp/dir1 . 复制一个目录到当前工作目录==
|
||||||
==cp -a dir1 dir2 复制一个目录==
|
==cp -a dir1 dir2 复制一个目录==
|
||||||
==ln -s file1 lnk1 创建一个指向文件或目录的软链接==
|
==ln -s file1 lnk1 创建一个指向文件或目录的软链接==
|
||||||
==ln file1 lnk1 创建一个指向文件或目录的物理链接==
|
==ln file1 lnk1 创建一个指向文件或目录的物理链接==
|
||||||
==touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)==
|
==touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)==
|
||||||
==file file1 outputs the mime type of the file as text==
|
==file file1 outputs the mime type of the file as text==
|
||||||
==iconv -l 列出已知的编码==
|
==iconv -l 列出已知的编码==
|
||||||
==iconv -f fromEncoding -t toEncoding inputFile \> outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.==
|
==iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.==
|
||||||
==find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)==
|
==find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)==
|
||||||
|
|
||||||
==文件搜索==
|
==文件搜索==
|
||||||
==find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录==
|
==find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录==
|
||||||
==find / -user user1 搜索属于用户 'user1' 的文件和目录==
|
==find / -user user1 搜索属于用户 'user1' 的文件和目录==
|
||||||
==find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件==
|
==find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件==
|
||||||
==find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件==
|
==find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件==
|
||||||
==find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件==
|
==find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件==
|
||||||
==find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限==
|
==find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限==
|
||||||
==find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备==
|
==find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备==
|
||||||
==locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令==
|
==locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令==
|
||||||
==whereis halt 显示一个二进制文件、源码或man的位置==
|
==whereis halt 显示一个二进制文件、源码或man的位置==
|
||||||
==which halt 显示一个二进制文件或可执行文件的完整路径==
|
==which halt 显示一个二进制文件或可执行文件的完整路径==
|
||||||
|
|
||||||
==挂载一个文件系统==
|
==挂载一个文件系统==
|
||||||
==mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在==
|
==mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在==
|
||||||
==umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出==
|
==umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出==
|
||||||
==fuser -km /mnt/hda2 当设备繁忙时强制卸载==
|
==fuser -km /mnt/hda2 当设备繁忙时强制卸载==
|
||||||
==umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用==
|
==umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用==
|
||||||
==mount /dev/fd0 /mnt/floppy 挂载一个软盘==
|
==mount /dev/fd0 /mnt/floppy 挂载一个软盘==
|
||||||
==mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom==
|
==mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom==
|
||||||
==mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom==
|
==mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom==
|
||||||
==mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom==
|
==mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom==
|
||||||
==mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件==
|
==mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件==
|
||||||
==mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统==
|
==mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统==
|
||||||
==mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备==
|
==mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备==
|
||||||
==mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享==
|
==mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享==
|
||||||
|
|
||||||
==磁盘空间==
|
==磁盘空间==
|
||||||
==df -h 显示已经挂载的分区列表==
|
==df -h 显示已经挂载的分区列表==
|
||||||
==ls -lSr |more 以尺寸大小排列文件和目录==
|
==ls -lSr |more 以尺寸大小排列文件和目录==
|
||||||
==du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'==
|
==du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'==
|
||||||
==du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小==
|
==du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小==
|
||||||
==rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)==
|
==rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)==
|
||||||
==dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)==
|
==dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==用户和群组==
|
==用户和群组==
|
||||||
==groupadd group_name 创建一个新用户组==
|
==groupadd group_name 创建一个新用户组==
|
||||||
==groupdel group_name 删除一个用户组==
|
==groupdel group_name 删除一个用户组==
|
||||||
==groupmod -n new_group_name old_group_name 重命名一个用户组==
|
==groupmod -n new_group_name old_group_name 重命名一个用户组==
|
||||||
==useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户==
|
==useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户==
|
||||||
==useradd user1 创建一个新用户==
|
==useradd user1 创建一个新用户==
|
||||||
==userdel -r user1 删除一个用户 ( '-r' 排除主目录)==
|
==userdel -r user1 删除一个用户 ( '-r' 排除主目录)==
|
||||||
==usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性==
|
==usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性==
|
||||||
==passwd 修改口令==
|
==passwd 修改口令==
|
||||||
==passwd user1 修改一个用户的口令 (只允许root执行)==
|
==passwd user1 修改一个用户的口令 (只允许root执行)==
|
||||||
==chage -E 2005-12-31 user1 设置用户口令的失效期限==
|
==chage -E 2005-12-31 user1 设置用户口令的失效期限==
|
||||||
==pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户==
|
==pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户==
|
||||||
==grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组==
|
==grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组==
|
||||||
==newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组==
|
==newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消==
|
==文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消==
|
||||||
==ls -lh 显示权限==
|
==ls -lh 显示权限==
|
||||||
==ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示==
|
==ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示==
|
||||||
==chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限==
|
==chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限==
|
||||||
==chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限==
|
==chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限==
|
||||||
==chown user1 file1 改变一个文件的所有人属性==
|
==chown user1 file1 改变一个文件的所有人属性==
|
||||||
==chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性==
|
==chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性==
|
||||||
==chgrp group1 file1 改变文件的群组==
|
==chgrp group1 file1 改变文件的群组==
|
||||||
==chown user1:group1 file1 改变一个文件的所有人和群组属性==
|
==chown user1:group1 file1 改变一个文件的所有人和群组属性==
|
||||||
==find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件==
|
==find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件==
|
||||||
==chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限==
|
==chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限==
|
||||||
==chmod u-s /bin/file1 禁用一个二进制文件的 SUID位==
|
==chmod u-s /bin/file1 禁用一个二进制文件的 SUID位==
|
||||||
==chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的==
|
==chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的==
|
||||||
==chmod g-s /home/public 禁用一个目录的 SGID 位==
|
==chmod g-s /home/public 禁用一个目录的 SGID 位==
|
||||||
==chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件==
|
==chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件==
|
||||||
==chmod o-t /home/public 禁用一个目录的 STIKY 位==
|
==chmod o-t /home/public 禁用一个目录的 STIKY 位==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消==
|
==文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消==
|
||||||
==chattr +a file1 只允许以追加方式读写文件==
|
==chattr +a file1 只允许以追加方式读写文件==
|
||||||
==chattr +c file1 允许这个文件能被内核自动压缩/解压==
|
==chattr +c file1 允许这个文件能被内核自动压缩/解压==
|
||||||
==chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件==
|
==chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件==
|
||||||
==chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接==
|
==chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接==
|
||||||
==chattr +s file1 允许一个文件被安全地删除==
|
==chattr +s file1 允许一个文件被安全地删除==
|
||||||
==chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘==
|
==chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘==
|
||||||
==chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件==
|
==chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件==
|
||||||
==lsattr 显示特殊的属性==
|
==lsattr 显示特殊的属性==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==打包和压缩文件==
|
==打包和压缩文件==
|
||||||
==bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件==
|
==bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件==
|
||||||
==bzip2 file1 压缩一个叫做 'file1' 的文件==
|
==bzip2 file1 压缩一个叫做 'file1' 的文件==
|
||||||
==gunzip file1.gz 解压一个叫做 'file1.gz'的文件==
|
==gunzip file1.gz 解压一个叫做 'file1.gz'的文件==
|
||||||
==gzip file1 压缩一个叫做 'file1'的文件==
|
==gzip file1 压缩一个叫做 'file1'的文件==
|
||||||
==gzip -9 file1 最大程度压缩==
|
==gzip -9 file1 最大程度压缩==
|
||||||
==rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包==
|
==rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包==
|
||||||
==rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'==
|
==rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'==
|
||||||
==rar x file1.rar 解压rar包==
|
==rar x file1.rar 解压rar包==
|
||||||
==unrar x file1.rar 解压rar包==
|
==unrar x file1.rar 解压rar包==
|
||||||
==tar -cvf archive.tar file1 创建一个非压缩的 tarball==
|
==tar -cvf archive.tar file1 创建一个非压缩的 tarball==
|
||||||
==tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件==
|
==tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件==
|
||||||
==tar -tf archive.tar 显示一个包中的内容==
|
==tar -tf archive.tar 显示一个包中的内容==
|
||||||
==tar -xvf archive.tar 释放一个包==
|
==tar -xvf archive.tar 释放一个包==
|
||||||
==tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下==
|
==tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下==
|
||||||
==tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包==
|
==tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包==
|
||||||
==tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包==
|
==tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包==
|
||||||
==tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包==
|
==tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包==
|
||||||
==tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包==
|
==tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包==
|
||||||
==zip file1.zip file1 创建一个zip格式的压缩包==
|
==zip file1.zip file1 创建一个zip格式的压缩包==
|
||||||
==zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包==
|
==zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包==
|
||||||
==unzip file1.zip 解压一个zip格式压缩包==
|
==unzip file1.zip 解压一个zip格式压缩包==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==RPM 包 - (Fedora, Redhat及类似系统)==
|
==RPM 包 - (Fedora, Redhat及类似系统)==
|
||||||
==rpm -ivh package.rpm 安装一个rpm包==
|
==rpm -ivh package.rpm 安装一个rpm包==
|
||||||
==rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告==
|
==rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告==
|
||||||
==rpm -U package.rpm 更新一个rpm包但不改变其配置文件==
|
==rpm -U package.rpm 更新一个rpm包但不改变其配置文件==
|
||||||
==rpm -F package.rpm 更新一个确定已经安装的rpm包==
|
==rpm -F package.rpm 更新一个确定已经安装的rpm包==
|
||||||
==rpm -e package_name.rpm 删除一个rpm包==
|
==rpm -e package_name.rpm 删除一个rpm包==
|
||||||
==rpm -qa 显示系统中所有已经安装的rpm包==
|
==rpm -qa 显示系统中所有已经安装的rpm包==
|
||||||
==rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包==
|
==rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包==
|
||||||
==rpm -qi package_name 获取一个已安装包的特殊信息==
|
==rpm -qi package_name 获取一个已安装包的特殊信息==
|
||||||
==rpm -qg "System Environment/Daemons" 显示一个组件的rpm包==
|
==rpm -qg "System Environment/Daemons" 显示一个组件的rpm包==
|
||||||
==rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表==
|
==rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表==
|
||||||
==rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表==
|
==rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表==
|
||||||
==rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表==
|
==rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表==
|
||||||
==rpm -q package_name --whatprovides 显示一个rpm包所占的体积==
|
==rpm -q package_name --whatprovides 显示一个rpm包所占的体积==
|
||||||
==rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l==
|
==rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l==
|
||||||
==rpm -q package_name --changelog 显示一个rpm包的修改历史==
|
==rpm -q package_name --changelog 显示一个rpm包的修改历史==
|
||||||
==rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供==
|
==rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供==
|
||||||
==rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表==
|
==rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表==
|
||||||
==rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书==
|
==rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书==
|
||||||
==rpm --checksig package.rpm 确认一个rpm包的完整性==
|
==rpm --checksig package.rpm 确认一个rpm包的完整性==
|
||||||
==rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性==
|
==rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性==
|
||||||
==rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间==
|
==rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间==
|
||||||
==rpm -Va 检查系统中所有已安装的rpm包- 小心使用==
|
==rpm -Va 检查系统中所有已安装的rpm包- 小心使用==
|
||||||
==rpm -Vp package.rpm 确认一个rpm包还未安装==
|
==rpm -Vp package.rpm 确认一个rpm包还未安装==
|
||||||
==rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件==
|
==rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件==
|
||||||
==rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包==
|
==rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包==
|
||||||
==rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包==
|
==rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==YUM 软件包升级器 - (Fedora, RedHat及类似系统)==
|
==YUM 软件包升级器 - (Fedora, RedHat及类似系统)==
|
||||||
==yum install package_name 下载并安装一个rpm包==
|
==yum install package_name 下载并安装一个rpm包==
|
||||||
==yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系==
|
==yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系==
|
||||||
==yum update package_name.rpm 更新当前系统中所有安装的rpm包==
|
==yum update package_name.rpm 更新当前系统中所有安装的rpm包==
|
||||||
==yum update package_name 更新一个rpm包==
|
==yum update package_name 更新一个rpm包==
|
||||||
==yum remove package_name 删除一个rpm包==
|
==yum remove package_name 删除一个rpm包==
|
||||||
==yum list 列出当前系统中安装的所有包==
|
==yum list 列出当前系统中安装的所有包==
|
||||||
==yum search package_name 在rpm仓库中搜寻软件包==
|
==yum search package_name 在rpm仓库中搜寻软件包==
|
||||||
==yum clean packages 清理rpm缓存删除下载的包==
|
==yum clean packages 清理rpm缓存删除下载的包==
|
||||||
==yum clean headers 删除所有头文件==
|
==yum clean headers 删除所有头文件==
|
||||||
==yum clean all 删除所有缓存的包和头文件==
|
==yum clean all 删除所有缓存的包和头文件==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==DEB 包 (Debian, Ubuntu 以及类似系统)==
|
==DEB 包 (Debian, Ubuntu 以及类似系统)==
|
||||||
==dpkg -i package.deb 安装/更新一个 deb 包==
|
==dpkg -i package.deb 安装/更新一个 deb 包==
|
||||||
==dpkg -r package_name 从系统删除一个 deb 包==
|
==dpkg -r package_name 从系统删除一个 deb 包==
|
||||||
==dpkg -l 显示系统中所有已经安装的 deb 包==
|
==dpkg -l 显示系统中所有已经安装的 deb 包==
|
||||||
==dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包==
|
==dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包==
|
||||||
==dpkg -s package_name 获得已经安装在系统中一个特殊包的信息==
|
==dpkg -s package_name 获得已经安装在系统中一个特殊包的信息==
|
||||||
==dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表==
|
==dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表==
|
||||||
==dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表==
|
==dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表==
|
||||||
==dpkg -S /bin/ping 确认所给的文件由哪个deb包提供==
|
==dpkg -S /bin/ping 确认所给的文件由哪个deb包提供==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==APT 软件工具 (Debian, Ubuntu 以及类似系统)==
|
==APT 软件工具 (Debian, Ubuntu 以及类似系统)==
|
||||||
==apt-get install package_name 安装/更新一个 deb 包==
|
==apt-get install package_name 安装/更新一个 deb 包==
|
||||||
==apt-cdrom install package_name 从光盘安装/更新一个 deb 包==
|
==apt-cdrom install package_name 从光盘安装/更新一个 deb 包==
|
||||||
==apt-get update 升级列表中的软件包==
|
==apt-get update 升级列表中的软件包==
|
||||||
==apt-get upgrade 升级所有已安装的软件==
|
==apt-get upgrade 升级所有已安装的软件==
|
||||||
==apt-get remove package_name 从系统删除一个deb包==
|
==apt-get remove package_name 从系统删除一个deb包==
|
||||||
==apt-get check 确认依赖的软件仓库正确==
|
==apt-get check 确认依赖的软件仓库正确==
|
||||||
==apt-get clean 从下载的软件包中清理缓存==
|
==apt-get clean 从下载的软件包中清理缓存==
|
||||||
==apt-cache search searched-package 返回包含所要搜索字符串的软件包名称==
|
==apt-cache search searched-package 返回包含所要搜索字符串的软件包名称==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==查看文件内容==
|
==查看文件内容==
|
||||||
==cat file1 从第一个字节开始正向查看文件的内容==
|
==cat file1 从第一个字节开始正向查看文件的内容==
|
||||||
==tac file1 从最后一行开始反向查看一个文件的内容==
|
==tac file1 从最后一行开始反向查看一个文件的内容==
|
||||||
==more file1 查看一个长文件的内容==
|
==more file1 查看一个长文件的内容==
|
||||||
==less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作==
|
==less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作==
|
||||||
==head -2 file1 查看一个文件的前两行==
|
==head -2 file1 查看一个文件的前两行==
|
||||||
==tail -2 file1 查看一个文件的最后两行==
|
==tail -2 file1 查看一个文件的最后两行==
|
||||||
==tail -f /var/log/messages 实时查看被添加到一个文件中的内容==
|
==tail -f /var/log/messages 实时查看被添加到一个文件中的内容==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==文本处理==
|
==文本处理==
|
||||||
==cat file1 file2 ... | command \<\> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT==
|
==cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT==
|
||||||
==cat file1 | command( sed, grep, awk, grep, etc...) \> result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中==
|
==cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中==
|
||||||
==cat file1 | command( sed, grep, awk, grep, etc...) \>\> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中==
|
==cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中==
|
||||||
==grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug"==
|
==grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug"==
|
||||||
==grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇==
|
==grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇==
|
||||||
==grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行==
|
==grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行==
|
||||||
==grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"==
|
==grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"==
|
||||||
==sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2"==
|
==sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2"==
|
||||||
==sed '/^$/d' example.txt 从example.txt文件中删除所有空白行==
|
==sed '/^$/d' example.txt 从example.txt文件中删除所有空白行==
|
||||||
==sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行==
|
==sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行==
|
||||||
==echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容==
|
==echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容==
|
||||||
==sed -e '1d' result.txt 从文件example.txt 中排除第一行==
|
==sed -e '1d' result.txt 从文件example.txt 中排除第一行==
|
||||||
==sed -n '/stringa1/p' 查看只包含词汇 "string1"的行==
|
==sed -n '/stringa1/p' 查看只包含词汇 "string1"的行==
|
||||||
==sed -e 's/ *$//' example.txt 删除每一行最后的空白字符==
|
==sed -e 's/ *$//' example.txt 删除每一行最后的空白字符==
|
||||||
==sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部==
|
==sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部==
|
||||||
==sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容==
|
==sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容==
|
||||||
==sed -n '5p;5q' example.txt 查看第5行==
|
==sed -n '5p;5q' example.txt 查看第5行==
|
||||||
==sed -e 's/00*/0/g' example.txt 用单个零替换多个零==
|
==sed -e 's/00*/0/g' example.txt 用单个零替换多个零==
|
||||||
==cat -n file1 标示文件的行数==
|
==cat -n file1 标示文件的行数==
|
||||||
==cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行==
|
==cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行==
|
||||||
==echo a b c | awk '{print $1}' 查看一行第一栏==
|
==echo a b c | awk '{print $1}' 查看一行第一栏==
|
||||||
==echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏==
|
==echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏==
|
||||||
==paste file1 file2 合并两个文件或两栏的内容==
|
==paste file1 file2 合并两个文件或两栏的内容==
|
||||||
==paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分==
|
==paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分==
|
||||||
==sort file1 file2 排序两个文件的内容==
|
==sort file1 file2 排序两个文件的内容==
|
||||||
==sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)==
|
==sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)==
|
||||||
==sort file1 file2 | uniq -u 删除交集,留下其他的行==
|
==sort file1 file2 | uniq -u 删除交集,留下其他的行==
|
||||||
==sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)==
|
==sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)==
|
||||||
==comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容==
|
==comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容==
|
||||||
==comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容==
|
==comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容==
|
||||||
==comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分==
|
==comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
|
|
||||||
==字符设置和文件格式转换==
|
==字符设置和文件格式转换==
|
||||||
==dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX==
|
==dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX==
|
||||||
==unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS==
|
==unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS==
|
||||||
==recode ..HTML \< page.txt \> page.html 将一个文本文件转换成html==
|
==recode ..HTML < page.txt > page.html 将一个文本文件转换成html==
|
||||||
==recode -l | more 显示所有允许的转换格式==
|
==recode -l | more 显示所有允许的转换格式==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==文件系统分析==
|
==文件系统分析==
|
||||||
==badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块==
|
==badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块==
|
||||||
==fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性==
|
==fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性==
|
||||||
==fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性==
|
==fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性==
|
||||||
==e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性==
|
==e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性==
|
||||||
==e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性==
|
==e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性==
|
||||||
==fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性==
|
==fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性==
|
||||||
==fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性==
|
==fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性==
|
||||||
==fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性==
|
==fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性==
|
||||||
==dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性==
|
==dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==初始化一个文件系统==
|
==初始化一个文件系统==
|
||||||
==mkfs /dev/hda1 在hda1分区创建一个文件系统==
|
==mkfs /dev/hda1 在hda1分区创建一个文件系统==
|
||||||
==mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统==
|
==mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统==
|
||||||
==mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统==
|
==mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统==
|
||||||
==mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统==
|
==mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统==
|
||||||
==fdformat -n /dev/fd0 格式化一个软盘==
|
==fdformat -n /dev/fd0 格式化一个软盘==
|
||||||
==mkswap /dev/hda3 创建一个swap文件系统==
|
==mkswap /dev/hda3 创建一个swap文件系统==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==SWAP文件系统==
|
==SWAP文件系统==
|
||||||
==mkswap /dev/hda3 创建一个swap文件系统==
|
==mkswap /dev/hda3 创建一个swap文件系统==
|
||||||
==swapon /dev/hda3 启用一个新的swap文件系统==
|
==swapon /dev/hda3 启用一个新的swap文件系统==
|
||||||
==swapon /dev/hda2 /dev/hdb3 启用两个swap分区==
|
==swapon /dev/hda2 /dev/hdb3 启用两个swap分区==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==备份==
|
==备份==
|
||||||
==dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份==
|
==dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份==
|
||||||
==dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份==
|
==dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份==
|
||||||
==restore -if /tmp/home0.bak 还原一个交互式备份==
|
==restore -if /tmp/home0.bak 还原一个交互式备份==
|
||||||
==rsync -rogpav --delete /home /tmp 同步两边的目录==
|
==rsync -rogpav --delete /home /tmp 同步两边的目录==
|
||||||
==rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync==
|
==rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync==
|
||||||
==rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录==
|
==rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录==
|
||||||
==rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录==
|
==rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录==
|
||||||
==dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作==
|
==dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作==
|
||||||
==dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件==
|
==dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件==
|
||||||
==tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作==
|
==tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作==
|
||||||
==( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容==
|
==( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容==
|
||||||
==( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录==
|
==( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录==
|
||||||
==tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接==
|
==tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接==
|
||||||
==find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录==
|
==find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录==
|
||||||
==find /var/log -name '*.log' | tar cv --files-from=- | bzip2 \> log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包==
|
==find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包==
|
||||||
==dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作==
|
==dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作==
|
||||||
==dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容==
|
==dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==光盘==
|
==光盘==
|
||||||
==cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容==
|
==cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容==
|
||||||
==mkisofs /dev/cdrom \> cd.iso 在磁盘上创建一个光盘的iso镜像文件==
|
==mkisofs /dev/cdrom > cd.iso 在磁盘上创建一个光盘的iso镜像文件==
|
||||||
==mkisofs /dev/cdrom | gzip \> cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件==
|
==mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件==
|
||||||
==mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件==
|
==mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件==
|
||||||
==cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件==
|
==cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件==
|
||||||
==gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件==
|
==gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件==
|
||||||
==mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件==
|
==mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件==
|
||||||
==cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中==
|
==cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中==
|
||||||
==cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3)==
|
==cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3)==
|
||||||
==cdrecord --scanbus 扫描总线以识别scsi通道==
|
==cdrecord --scanbus 扫描总线以识别scsi通道==
|
||||||
==dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD==
|
==dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD==
|
||||||
|
|
||||||
==返回顶部索引 ^==
|
==返回顶部索引 ^==
|
||||||
|
|
||||||
==网络 - (以太网和WIFI无线)==
|
==网络 - (以太网和WIFI无线)==
|
||||||
==ifconfig eth0 显示一个以太网卡的配置==
|
==ifconfig eth0 显示一个以太网卡的配置==
|
||||||
==ifup eth0 启用一个 'eth0' 网络设备==
|
==ifup eth0 启用一个 'eth0' 网络设备==
|
||||||
==ifdown eth0 禁用一个 'eth0' 网络设备==
|
==ifdown eth0 禁用一个 'eth0' 网络设备==
|
||||||
==ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址==
|
==ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址==
|
||||||
==ifconfig eth0 promisc 设置 'eth0' 成混杂模式以嗅探数据包 (sniffing)==
|
==ifconfig eth0 promisc 设置 'eth0' 成混杂模式以嗅探数据包 (sniffing)==
|
||||||
==dhclient eth0 以dhcp模式启用 'eth0'==
|
==dhclient eth0 以dhcp模式启用 'eth0'==
|
||||||
==route -n show routing table==
|
==route -n show routing table==
|
||||||
==route add -net 0/0 gw IP_Gateway configura default gateway==
|
==route add -net 0/0 gw IP_Gateway configura default gateway==
|
||||||
==route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16'==
|
==route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16'==
|
||||||
==route del 0/0 gw IP_gateway remove static route==
|
==route del 0/0 gw IP_gateway remove static route==
|
||||||
==echo "1" \> /proc/sys/net/ipv4/ip_forward activate ip routing==
|
==echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing==
|
||||||
==hostname show hostname of system==
|
==hostname show hostname of system==
|
||||||
==host== ==www.example.com== ==lookup hostname to resolve name to ip address and viceversa(1)==
|
==host== ==www.example.com== ==lookup hostname to resolve name to ip address and viceversa(1)==
|
||||||
==nslookup== ==www.example.com== ==lookup hostname to resolve name to ip address and viceversa(2)==
|
==nslookup== ==www.example.com== ==lookup hostname to resolve name to ip address and viceversa(2)==
|
||||||
==ip link show show link status of all interfaces==
|
==ip link show show link status of all interfaces==
|
||||||
==mii-tool eth0 show link status of 'eth0'==
|
==mii-tool eth0 show link status of 'eth0'==
|
||||||
==ethtool eth0 show statistics of network card 'eth0'==
|
==ethtool eth0 show statistics of network card 'eth0'==
|
||||||
==netstat -tup show all active network connections and their PID==
|
==netstat -tup show all active network connections and their PID==
|
||||||
==netstat -tupl show all network services listening on the system and their PID==
|
==netstat -tupl show all network services listening on the system and their PID==
|
||||||
==tcpdump tcp port 80 show all HTTP traffic==
|
==tcpdump tcp port 80 show all HTTP traffic==
|
||||||
==iwlist scan show wireless networks==
|
==iwlist scan show wireless networks==
|
||||||
==iwconfig eth1 show configuration of a wireless network card==
|
==iwconfig eth1 show configuration of a wireless network card==
|
||||||
==hostname show hostname==
|
==hostname show hostname==
|
||||||
==host== ==www.example.com== ==lookup hostname to resolve name to ip address and viceversa==
|
==host== ==www.example.com== ==lookup hostname to resolve name to ip address and viceversa==
|
||||||
==nslookup== ==www.example.com== ==lookup hostname to resolve name to ip address and viceversa==
|
==nslookup== ==www.example.com== ==lookup hostname to resolve name to ip address and viceversa==
|
||||||
==whois== ==www.example.com== ==lookup on Whois database==
|
==whois== ==www.example.com== ==lookup on Whois database==
|
||||||
|
|
||||||
==GO TOP INDEX ^==
|
==GO TOP INDEX ^==
|
||||||
==Microsoft Windows networks (SAMBA)==
|
==Microsoft Windows networks (SAMBA)==
|
||||||
==nbtscan ip_addr netbios name resolution==
|
==nbtscan ip_addr netbios name resolution==
|
||||||
==nmblookup -A ip_addr netbios name resolution==
|
==nmblookup -A ip_addr netbios name resolution==
|
||||||
==smbclient -L ip_addr/hostname show remote shares of a windows host==
|
==smbclient -L ip_addr/hostname show remote shares of a windows host==
|
||||||
==smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb==
|
==smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb==
|
||||||
==mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share==
|
==mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share==
|
||||||
\> 来自 \<[http://blog.csdn.net/ww130929/article/details/69788517](http://blog.csdn.net/ww130929/article/details/69788517)\>
|
> 来自 <[http://blog.csdn.net/ww130929/article/details/69788517](http://blog.csdn.net/ww130929/article/details/69788517)>
|
||||||
@@ -16,4 +16,4 @@ Document/ 是需要执行的目录
|
|||||||
|
|
||||||
==username:users users用户组的username,用户组参数不是必须有==
|
==username:users users用户组的username,用户组参数不是必须有==
|
||||||
==参考:http://rabbit52.com/2011/linux/ubuntu/linux-chmod-chown==
|
==参考:http://rabbit52.com/2011/linux/ubuntu/linux-chmod-chown==
|
||||||
\> 来自 \<[http://blog.csdn.net/songyu0120/article/details/43408499](http://blog.csdn.net/songyu0120/article/details/43408499)\>
|
> 来自 <[http://blog.csdn.net/songyu0120/article/details/43408499](http://blog.csdn.net/songyu0120/article/details/43408499)>
|
||||||
@@ -2,4 +2,4 @@
|
|||||||
==可以列出你整个VPS所有文件夹的大小。其中“/*”是控制分析哪个目录的,你根据上面的结果,然后灵活变化后面的路径就行了,例如:==
|
==可以列出你整个VPS所有文件夹的大小。其中“/*”是控制分析哪个目录的,你根据上面的结果,然后灵活变化后面的路径就行了,例如:==
|
||||||
==du -sh /usr/*==
|
==du -sh /usr/*==
|
||||||
==用这个命令来分析usr目录下的文件夹大小,最后定位到大文件,直接删除就行了。==
|
==用这个命令来分析usr目录下的文件夹大小,最后定位到大文件,直接删除就行了。==
|
||||||
\> 来自 \<[https://www.hack520.com/504.html](https://www.hack520.com/504.html)\>
|
> 来自 <[https://www.hack520.com/504.html](https://www.hack520.com/504.html)>
|
||||||
@@ -13,4 +13,4 @@ $ sudo /etc/init.d/apache2 restart
|
|||||||
==2==
|
==2==
|
||||||
==访问端口localhost/phpmyadmin,输入账号密码即可==
|
==访问端口localhost/phpmyadmin,输入账号密码即可==
|
||||||
==重点提要:因为默认安装phpmyadmin时会安装apahce和php等依赖包,由于是16.04系统,会默认安装php7.0,php7.0又没有默认自带php-mbstring,php-gettext这两个包,所以会报错。==
|
==重点提要:因为默认安装phpmyadmin时会安装apahce和php等依赖包,由于是16.04系统,会默认安装php7.0,php7.0又没有默认自带php-mbstring,php-gettext这两个包,所以会报错。==
|
||||||
\> 来自 \<[http://blog.csdn.net/l6807718/article/details/51374915](http://blog.csdn.net/l6807718/article/details/51374915)\>
|
> 来自 <[http://blog.csdn.net/l6807718/article/details/51374915](http://blog.csdn.net/l6807718/article/details/51374915)>
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
**阿里云下Ubuntu16下LAMP+wordpress建站记录**
|
**阿里云下Ubuntu16下LAMP+wordpress建站记录**
|
||||||
\> 来自 \<[http://blog.csdn.net/code12hour/article/details/63691403](http://blog.csdn.net/code12hour/article/details/63691403)\>
|
> 来自 <[http://blog.csdn.net/code12hour/article/details/63691403](http://blog.csdn.net/code12hour/article/details/63691403)>
|
||||||
@@ -9,19 +9,19 @@ vim /etc/vsftpd.conf
|
|||||||
|
|
||||||
[](javascript:void\(0\);)
|
[](javascript:void\(0\);)
|
||||||
|
|
||||||
#这些设置系统默认是开启的,可以不管listen=NOlisten_ipv6=YESdirmessage_enable=YESuse_localtime=YESxferlog_enable=YESconnect_from_port_20=YES
|
# 这些设置系统默认是开启的,可以不管listen=NOlisten_ipv6=YESdirmessage_enable=YESuse_localtime=YESxferlog_enable=YESconnect_from_port_20=YES
|
||||||
#下面的就要自定义设置了,建议系统默认的不管,然后复制下面的
|
# 下面的就要自定义设置了,建议系统默认的不管,然后复制下面的
|
||||||
#是否允许匿名访问,NO为不允许anonymous_enable=NO#是否允许本地用户访问,就是linux本机中存在的用户,YES允许local_enable=YES#是否开启写模式,YES为开启write_enable=YES#新建文件权限,一般设置为022,那么新建后的文件的权限就是777-022=755local_umask=022
|
# 是否允许匿名访问,NO为不允许anonymous_enable=NO#是否允许本地用户访问,就是linux本机中存在的用户,YES允许local_enable=YES#是否开启写模式,YES为开启write_enable=YES#新建文件权限,一般设置为022,那么新建后的文件的权限就是777-022=755local_umask=022
|
||||||
#是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),NO的话,白名单失效,和下面一个参数配合使用userlist_enable=YES#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能userlist_deny=NO#指定哪个文件作为userlist文件,我们稍后编辑这个文件userlist_file=/etc/vsftpd.user_list
|
# 是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),NO的话,白名单失效,和下面一个参数配合使用userlist_enable=YES#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能userlist_deny=NO#指定哪个文件作为userlist文件,我们稍后编辑这个文件userlist_file=/etc/vsftpd.user_list
|
||||||
#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制啦chroot_local_user=YES#是否启动限制用户的名单list为允许模式,上面的YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外chroot_list_enable=YES#设置哪个文件是list文件,里面的用户将不受限制的去访问ftp根目录以外的目录chroot_list_file=/etc/vsftpd.chroot_list#是否开启写模式,开启后可以进行创建文件夹等写入操作allow_writeable_chroot=YES
|
# 是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制啦chroot_local_user=YES#是否启动限制用户的名单list为允许模式,上面的YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外chroot_list_enable=YES#设置哪个文件是list文件,里面的用户将不受限制的去访问ftp根目录以外的目录chroot_list_file=/etc/vsftpd.chroot_list#是否开启写模式,开启后可以进行创建文件夹等写入操作allow_writeable_chroot=YES
|
||||||
#设置ftp根目录的位置,这个文件我们稍后自己创建local_root=/var/myftp
|
# 设置ftp根目录的位置,这个文件我们稍后自己创建local_root=/var/myftp
|
||||||
|
|
||||||
[](javascript:void\(0\);)
|
[](javascript:void\(0\);)
|
||||||
|
|
||||||
==重启====vsftpd==
|
==重启====vsftpd==
|
||||||
|
|
||||||
sudo /etc/init.d/vsftpd restart
|
sudo /etc/init.d/vsftpd restart
|
||||||
|
|
||||||
==4.====添加====ftp====用户==
|
==4.====添加====ftp====用户==
|
||||||
==顺便将将用户目录设置为我们上面的====ftp====根目录==
|
==顺便将将用户目录设置为我们上面的====ftp====根目录==
|
||||||
sudo useradd -d /var/myftp ftpuser
|
sudo useradd -d /var/myftp ftpuser
|
||||||
@@ -36,7 +36,7 @@ vim /etc/vsftpd.chroot_list
|
|||||||
==创建用户文件夹,设置权限==
|
==创建用户文件夹,设置权限==
|
||||||
mkdir /var/myftp
|
mkdir /var/myftp
|
||||||
==权限设置可以根据你的使用场景来设置,我这里在根目录下禁止此用户写,然后下面建两个文件夹,一个====download====只允许读取,====upload====允许写和读==
|
==权限设置可以根据你的使用场景来设置,我这里在根目录下禁止此用户写,然后下面建两个文件夹,一个====download====只允许读取,====upload====允许写和读==
|
||||||
|
|
||||||
|
|
||||||
[](javascript:void\(0\);)
|
[](javascript:void\(0\);)
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ chmod 555 /var/myftpcd /var/myftpmkdir uploadchmod 755 uploadmkdir d
|
|||||||
|
|
||||||
[](javascript:void\(0\);)
|
[](javascript:void\(0\);)
|
||||||
|
|
||||||
|
|
||||||
==最后检查一下文件所有者,都改为====ftpuser==
|
==最后检查一下文件所有者,都改为====ftpuser==
|
||||||
==6.====使用====ftp====,解决各种问题==
|
==6.====使用====ftp====,解决各种问题==
|
||||||
==linux====访问输入====ftp== ==加== ==你的====IP==
|
==linux====访问输入====ftp== ==加== ==你的====IP==
|
||||||
@@ -58,4 +58,4 @@ passive mode
|
|||||||
==然后====mkdir====一下发现无法创建文件夹== ==550 create directory operation failed==
|
==然后====mkdir====一下发现无法创建文件夹== ==550 create directory operation failed==
|
||||||
setsebool -P ftpd_disable_trans on/etc/init.d/vsftpd restart
|
setsebool -P ftpd_disable_trans on/etc/init.d/vsftpd restart
|
||||||
==即可==
|
==即可==
|
||||||
\> 来自 \<[https://www.cnblogs.com/dupengcheng/p/6790143.html](https://www.cnblogs.com/dupengcheng/p/6790143.html)\>
|
> 来自 <[https://www.cnblogs.com/dupengcheng/p/6790143.html](https://www.cnblogs.com/dupengcheng/p/6790143.html)>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
1. 首先,安装Apache2,安装命令:sudo apt-get install apache2
|
1. 首先,安装Apache2,安装命令:sudo apt-get install apache2
|
||||||
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=1)3. 安装完成后,进入到/etc/apache2中(根据自己的实际安装目录),这边我配置文件在/etc/apache2中。 我们看到没有想象中的httpd.conf配置文件,这里要说明的是apache2的配置文件是apache2.conf,而不是http.conf。 打开apache2.conf。写入两条语句ServerName localhostDirectoryIndex index.html index.htm index.php这里的ServerName localhost是为了防止最后开启apache2服务的时候会提示DNS出错。DirectoryIndex index.html index.htm index.php是默认目录的写法。保存退出。可以在apache2.conf中加入 AddDefaultCharset GB2312  设置默认字符集,定义服务器返回给客户机默认字符集(由于西欧UTF-8是Apache默认字符集,因此当访问有中文的网页时会出现乱码,这时只要将字符集改成GB2312,再重启Apache服务即可)Listen 192.168.1.1:80 设置监听ip是192.168.1.1的地址和端口为80Listen 192.168.1.2:8080 设置监听ip是192.168.1.2的地址和端口为8080Alias /down "/sofТWare /download" 创建虚拟目录(创建名为down的虚拟目录,它对应的物理路径是:/sofТWare /download)Alias /ftp "/var/ftp" 创建虚拟目录(创建名为ftp的虚拟目录,它对应的物理路径是:/var/ftp)\<Directory "/var/www/html"\> 设置目录权限(\<Directory "目录路径"\>此次写设置目录权限的语句\</Directory\>) Options FollowSymLinks page:116 AllowOverride None\</Directory\>
|
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=1)3. 安装完成后,进入到/etc/apache2中(根据自己的实际安装目录),这边我配置文件在/etc/apache2中。 我们看到没有想象中的httpd.conf配置文件,这里要说明的是apache2的配置文件是apache2.conf,而不是http.conf。 打开apache2.conf。写入两条语句ServerName localhostDirectoryIndex index.html index.htm index.php这里的ServerName localhost是为了防止最后开启apache2服务的时候会提示DNS出错。DirectoryIndex index.html index.htm index.php是默认目录的写法。保存退出。可以在apache2.conf中加入 AddDefaultCharset GB2312  设置默认字符集,定义服务器返回给客户机默认字符集(由于西欧UTF-8是Apache默认字符集,因此当访问有中文的网页时会出现乱码,这时只要将字符集改成GB2312,再重启Apache服务即可)Listen 192.168.1.1:80 设置监听ip是192.168.1.1的地址和端口为80Listen 192.168.1.2:8080 设置监听ip是192.168.1.2的地址和端口为8080Alias /down "/sofТWare /download" 创建虚拟目录(创建名为down的虚拟目录,它对应的物理路径是:/sofТWare /download)Alias /ftp "/var/ftp" 创建虚拟目录(创建名为ftp的虚拟目录,它对应的物理路径是:/var/ftp)<Directory "/var/www/html"> 设置目录权限(<Directory "目录路径">此次写设置目录权限的语句</Directory>) Options FollowSymLinks page:116 AllowOverride None</Directory>
|
||||||
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=2)
|
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=2)
|
||||||
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=3)7. 需要说明的是,在apache2中,根设置(默认主目录)在 /etc/apache2/sites-АVailable/default中,我们打开default,进行配置。如图,这里我们的默认主目录设置的路径是/var/www,文档最上方的VirtualHost后方的*代表通配符,即表示所有本机ip地址,监听端口为80,ServerName填写你注册的域名,没有可以不填。保存退出。
|
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=3)7. 需要说明的是,在apache2中,根设置(默认主目录)在 /etc/apache2/sites-АVailable/default中,我们打开default,进行配置。如图,这里我们的默认主目录设置的路径是/var/www,文档最上方的VirtualHost后方的*代表通配符,即表示所有本机ip地址,监听端口为80,ServerName填写你注册的域名,没有可以不填。保存退出。
|
||||||
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=4)
|
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=4)
|
||||||
@@ -11,11 +11,11 @@
|
|||||||
==END==
|
==END==
|
||||||
注意事项
|
注意事项
|
||||||
|
|
||||||
18. 配置文件从httpd.conf变成了apache2.con \> 来自 \<[https://jingyan.baidu.com/article/9158e0006581d1a2541228b5.html](https://jingyan.baidu.com/article/9158e0006581d1a2541228b5.html)\>
|
18. 配置文件从httpd.conf变成了apache2.con > 来自 <[https://jingyan.baidu.com/article/9158e0006581d1a2541228b5.html](https://jingyan.baidu.com/article/9158e0006581d1a2541228b5.html)>
|
||||||
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=1)[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=2)
|
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=1)[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=2)
|
||||||
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=3)[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=4)
|
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=3)[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=4)
|
||||||
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=5)[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=6)
|
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=5)[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=6)
|
||||||
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=7)
|
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=7)
|
||||||
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=8)
|
[](http://jingyan.baidu.com/album/9158e0006581d1a2541228b5.html?picindex=8)
|
||||||
\> 来自 \<[https://jingyan.baidu.com/article/9158e0006581d1a2541228b5.html](https://jingyan.baidu.com/article/9158e0006581d1a2541228b5.html)\>
|
> 来自 <[https://jingyan.baidu.com/article/9158e0006581d1a2541228b5.html](https://jingyan.baidu.com/article/9158e0006581d1a2541228b5.html)>
|
||||||

|

|
||||||
@@ -6,7 +6,7 @@
|
|||||||
/usr/share/mysql 字符集,基准程序和错误消息
|
/usr/share/mysql 字符集,基准程序和错误消息
|
||||||
/etc/init.d/mysql 启动mysql服务器
|
/etc/init.d/mysql 启动mysql服务器
|
||||||
二). 设置mysql服务器随开关机自动启动和关闭:
|
二). 设置mysql服务器随开关机自动启动和关闭:
|
||||||
系统 -\> 系统管理 -\> 服务
|
系统 -> 系统管理 -> 服务
|
||||||
进行到“服务设置”窗口后,激活mysql数据库服务即可
|
进行到“服务设置”窗口后,激活mysql数据库服务即可
|
||||||
三). 修改mysql数据库文件的存储目录:
|
三). 修改mysql数据库文件的存储目录:
|
||||||
MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:
|
MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:
|
||||||
@@ -38,23 +38,23 @@ MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移
|
|||||||
或用reboot命令重启Linux
|
或用reboot命令重启Linux
|
||||||
如果工作正常移动就成功了,否则对照前面的7步再检查一下。还要注意目录的属主和权限。
|
如果工作正常移动就成功了,否则对照前面的7步再检查一下。还要注意目录的属主和权限。
|
||||||
四). 配置mysql数据库的INNODB存储引擎:
|
四). 配置mysql数据库的INNODB存储引擎:
|
||||||
1 . 查看mysql存储引擎情况: 登录mysql数据库,在mysql\>提示符下搞入show engines;命令。发现: InnoDB | YES,说明此mysql数据库服务器支持InnoDB引擎。
|
1 . 查看mysql存储引擎情况: 登录mysql数据库,在mysql>提示符下搞入show engines;命令。发现: InnoDB | YES,说明此mysql数据库服务器支持InnoDB引擎。
|
||||||
2. 设置InnoDB为默认引擎:在配置文件my.cnf中的 [mysqld] 下面加入default-storage-engine=INNODB 一句,保存。
|
2. 设置InnoDB为默认引擎:在配置文件my.cnf中的 [mysqld] 下面加入default-storage-engine=INNODB 一句,保存。
|
||||||
3. 重启mysql服务器:mysqladmin -u root -p shutdown(回车),sudo /etc/init.d/mysql start(回车)。
|
3. 重启mysql服务器:mysqladmin -u root -p shutdown(回车),sudo /etc/init.d/mysql start(回车)。
|
||||||
4. 登录mysql数据库,在mysql\>提示符下搞入show engines;命令。如果出现 InnoDB |DEFAULT,则表示我们 设置InnoDB为默认引擎成功。
|
4. 登录mysql数据库,在mysql>提示符下搞入show engines;命令。如果出现 InnoDB |DEFAULT,则表示我们 设置InnoDB为默认引擎成功。
|
||||||
ps: 这里我用重启命令sudo /etc/init.d/mysql restart,出现错误信息, 所以用了上面(步骤3)那种关闭服务又启动的笨方法。
|
ps: 这里我用重启命令sudo /etc/init.d/mysql restart,出现错误信息, 所以用了上面(步骤3)那种关闭服务又启动的笨方法。
|
||||||
五)、MYSQL数据库表大小写问题
|
五)、MYSQL数据库表大小写问题
|
||||||
vi /etc/mysql/my.cnf
|
vi /etc/mysql/my.cnf
|
||||||
在[mysqld]后添加
|
在[mysqld]后添加
|
||||||
lower_case_table_names=0 区分大小写
|
lower_case_table_names=0 区分大小写
|
||||||
lower_case_table_names=1 不区分大小写
|
lower_case_table_names=1 不区分大小写
|
||||||
重启MYSQL服务
|
重启MYSQL服务
|
||||||
MYSQL在LINUX下数据库名、表名、列名、别名大小写规则如下:
|
MYSQL在LINUX下数据库名、表名、列名、别名大小写规则如下:
|
||||||
1.数据库名与表名是严格区分大小写的
|
1.数据库名与表名是严格区分大小写的
|
||||||
2.表的别名是严格区分大小写的
|
2.表的别名是严格区分大小写的
|
||||||
3.列名与列的别名在所有的情况下均是忽略大小写的
|
3.列名与列的别名在所有的情况下均是忽略大小写的
|
||||||
4.变量名也是严格区分大小写的
|
4.变量名也是严格区分大小写的
|
||||||
MYSQL在WINDOWS下都不区分大小写
|
MYSQL在WINDOWS下都不区分大小写
|
||||||
六)、管理Mysql
|
六)、管理Mysql
|
||||||
1、删除 mysql
|
1、删除 mysql
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
|
|||||||
==2、安装 mysql======
|
==2、安装 mysql======
|
||||||
1 sudo apt-get install mysql-server
|
1 sudo apt-get install mysql-server
|
||||||
2 sudo apt-get install mysql-client
|
2 sudo apt-get install mysql-client
|
||||||
3 sudo apt-get install php5-mysql(安装php5-mysql 是将php和mysql连接起来 )
|
3 sudo apt-get install php5-mysql(安装php5-mysql 是将php和mysql连接起来 )
|
||||||
====
|
====
|
||||||
==一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:======
|
==一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:======
|
||||||
1 sudo netstat -tap | grep mysql
|
1 sudo netstat -tap | grep mysql
|
||||||
@@ -91,25 +91,25 @@ MySQL导出的SQL语句在导入时有可能会非常非常慢。在导出时合
|
|||||||
–net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。
|
–net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。
|
||||||
注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值 大,否则可能出错。
|
注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值 大,否则可能出错。
|
||||||
首先确定目标库的参数值
|
首先确定目标库的参数值
|
||||||
mysql\>show variables like ‘max_allowed_packet’;
|
mysql>show variables like ‘max_allowed_packet’;
|
||||||
mysql\>show variables like ‘net_buffer_length’;
|
mysql>show variables like ‘net_buffer_length’;
|
||||||
根据参数值书写mysqldump命令,如:
|
根据参数值书写mysqldump命令,如:
|
||||||
E:\eis\>mysqldump -uroot -p eis_db goodclassification -e –max_allowed_packet=1048576 –net_buffer_length=16384 \>good3.sql
|
E:\eis>mysqldump -uroot -p eis_db goodclassification -e –max_allowed_packet=1048576 –net_buffer_length=16384 >good3.sql
|
||||||
==三====.====从数据库导出数据库文件:==
|
==三====.====从数据库导出数据库文件:==
|
||||||
==1.====将数据库====mydb====导出到====e:\mysql\mydb.sql====文件中:==
|
==1.====将数据库====mydb====导出到====e:\mysql\mydb.sql====文件中:==
|
||||||
==打开开始====-\>====运行====-\>====输入====cmd== ==进入命令行模式==
|
==打开开始====->====运行====->====输入====cmd== ==进入命令行模式==
|
||||||
==c:\\>mysqldump -h localhost -u root -p mydb \>e:\mysql\mydb.sql==
|
==c:\>mysqldump -h localhost -u root -p mydb >e:\mysql\mydb.sql==
|
||||||
==然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。==
|
==然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。==
|
||||||
==2.====将数据库====mydb====中的====mytable====导出到====e:\mysql\mytable.sql====文件中:==
|
==2.====将数据库====mydb====中的====mytable====导出到====e:\mysql\mytable.sql====文件中:==
|
||||||
==c:\\>mysqldump -h localhost -u root -p mydb mytable\>e:\mysql\mytable.sql==
|
==c:\>mysqldump -h localhost -u root -p mydb mytable>e:\mysql\mytable.sql==
|
||||||
==3.====将数据库====mydb====的结构导出到====e:\mysql\mydb_stru.sql====文件中:==
|
==3.====将数据库====mydb====的结构导出到====e:\mysql\mydb_stru.sql====文件中:==
|
||||||
==c:\\>mysqldump -h localhost -u root -p mydb --add-drop-table \>e:\mysql\mydb_stru.sql==
|
==c:\>mysqldump -h localhost -u root -p mydb --add-drop-table >e:\mysql\mydb_stru.sql==
|
||||||
==四====.====从外部文件导入数据到数据库中:==
|
==四====.====从外部文件导入数据到数据库中:==
|
||||||
==从====e:\mysql\mydb2.sql====中将文件中的====SQL====语句导入数据库中:==
|
==从====e:\mysql\mydb2.sql====中将文件中的====SQL====语句导入数据库中:==
|
||||||
==1.====从命令行进入====mysql====,然后用命令====CREATE DATABASE mydb2;====创建数据库====mydb2====。==
|
==1.====从命令行进入====mysql====,然后用命令====CREATE DATABASE mydb2;====创建数据库====mydb2====。==
|
||||||
==2.====退出====mysql== ==可以输入命令====exit====;或者====quit====;==
|
==2.====退出====mysql== ==可以输入命令====exit====;或者====quit====;==
|
||||||
==3.====在====CMD====中输入下列命令:==
|
==3.====在====CMD====中输入下列命令:==
|
||||||
==c:\\>mysql -h localhost -u root -p mydb2 \< e:\mysql\mydb2.sql==
|
==c:\>mysql -h localhost -u root -p mydb2 < e:\mysql\mydb2.sql==
|
||||||
==然后输入密码,就====OK====了。==
|
==然后输入密码,就====OK====了。==
|
||||||
==五====.====下面谈一下关于导入文件大小限制问题的解决:==
|
==五====.====下面谈一下关于导入文件大小限制问题的解决:==
|
||||||
==默认情况下:====mysql== ==对导入文件大小有限制的,最大为====2M====,所以当文件很大时候,直接无法导入,下面就这个问题的解决列举如下:==
|
==默认情况下:====mysql== ==对导入文件大小有限制的,最大为====2M====,所以当文件很大时候,直接无法导入,下面就这个问题的解决列举如下:==
|
||||||
@@ -119,7 +119,7 @@ E:\eis\>mysqldump -uroot -p eis_db goodclassification -e –max_allowed_packet=1
|
|||||||
==修改====upload_max_filesize=200 M== ==这里修改满足你需要的大小,==
|
==修改====upload_max_filesize=200 M== ==这里修改满足你需要的大小,==
|
||||||
==可以同时修改其他两项====memory_limit=250M post_max_size=200M==
|
==可以同时修改其他两项====memory_limit=250M post_max_size=200M==
|
||||||
==这样就可以导入====200M====以下的====.sql====文件了==
|
==这样就可以导入====200M====以下的====.sql====文件了==
|
||||||
\> 来自 \<[http://blog.csdn.net/qingrx/article/details/7987030](http://blog.csdn.net/qingrx/article/details/7987030)\>
|
> 来自 <[http://blog.csdn.net/qingrx/article/details/7987030](http://blog.csdn.net/qingrx/article/details/7987030)>
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
@@ -129,14 +129,14 @@ $mysql -u root -p 管理员密码
|
|||||||
==进入MySQL Command line client下==
|
==进入MySQL Command line client下==
|
||||||
|
|
||||||
==查看当前使用的数据库:==
|
==查看当前使用的数据库:==
|
||||||
==mysql\>select database();==
|
==mysql>select database();==
|
||||||
==mysql\>status;==
|
==mysql>status;==
|
||||||
==mysql\>show tables;==
|
==mysql>show tables;==
|
||||||
==mysql\>show databases;//可以查看有哪些数据库,返回数据库名(databaseName)==
|
==mysql>show databases;//可以查看有哪些数据库,返回数据库名(databaseName)==
|
||||||
==mysql\>use databaseName; //更换当前使用的数据库==
|
==mysql>use databaseName; //更换当前使用的数据库==
|
||||||
==mysql\>show tables; //返回当前数据库下的所有表的名称==
|
==mysql>show tables; //返回当前数据库下的所有表的名称==
|
||||||
==或者也可以直接用以下命令==
|
==或者也可以直接用以下命令==
|
||||||
==mysql\>show tables from databaseName;//databaseName可以用show databases得来==
|
==mysql>show tables from databaseName;//databaseName可以用show databases得来==
|
||||||
==mysql查看表结构命令,如下:==
|
==mysql查看表结构命令,如下:==
|
||||||
==desc 表名;==
|
==desc 表名;==
|
||||||
==show columns from 表名;==
|
==show columns from 表名;==
|
||||||
@@ -148,8 +148,8 @@ $mysql -u root -p 管理员密码
|
|||||||
==select * from columns where table_name='表名';==
|
==select * from columns where table_name='表名';==
|
||||||
==查看警告:==
|
==查看警告:==
|
||||||
==Rows matched: 1 Changed: 0 Warnings: 1==
|
==Rows matched: 1 Changed: 0 Warnings: 1==
|
||||||
==mysql\> show warnings;==
|
==mysql> show warnings;==
|
||||||
\> 来自 \<[http://database.51cto.com/art/201011/234471.htm](http://database.51cto.com/art/201011/234471.htm)\>
|
> 来自 <[http://database.51cto.com/art/201011/234471.htm](http://database.51cto.com/art/201011/234471.htm)>
|
||||||
|
|
||||||
|
|
||||||
 
|
 
|
||||||
@@ -158,11 +158,11 @@ $mysql -u root -p 管理员密码
|
|||||||
|
|
||||||
比如我要创建一个名为linux的数据库,应该运行如下命令
|
比如我要创建一个名为linux的数据库,应该运行如下命令
|
||||||
|
|
||||||
mysql\> create database [数据库名];
|
mysql> create database [数据库名];
|
||||||
|
|
||||||
所以我们应该运行如下的命令,来创建名为linux的数据库
|
所以我们应该运行如下的命令,来创建名为linux的数据库
|
||||||
|
|
||||||
mysql\> create database linux;
|
mysql> create database linux;
|
||||||
Query OK, 1 row affected (0.00 sec)
|
Query OK, 1 row affected (0.00 sec)
|
||||||
|
|
||||||
是不是建好了呢??肯定是建好了,因为都有OK了:)
|
是不是建好了呢??肯定是建好了,因为都有OK了:)
|
||||||
@@ -170,7 +170,7 @@ Query OK, 1 row affected (0.00 sec)
|
|||||||
查看是不是有linux这个数据库了呢?
|
查看是不是有linux这个数据库了呢?
|
||||||
|
|
||||||
代码:
|
代码:
|
||||||
mysql\> show databases;
|
mysql> show databases;
|
||||||
+----------+
|
+----------+
|
||||||
| Database |
|
| Database |
|
||||||
+----------+
|
+----------+
|
||||||
@@ -181,31 +181,31 @@ mysql\> show databases;
|
|||||||
3 rows in set (0.00 sec)
|
3 rows in set (0.00 sec)
|
||||||
|
|
||||||
那我们如何删除一个数据库呢??
|
那我们如何删除一个数据库呢??
|
||||||
mysql\> drop database [数据库名];
|
mysql> drop database [数据库名];
|
||||||
|
|
||||||
比如我们要把刚才创建的linux数据库删除,应该用下面的命令;
|
比如我们要把刚才创建的linux数据库删除,应该用下面的命令;
|
||||||
mysql\> drop database linux;
|
mysql> drop database linux;
|
||||||
Query OK, 0 rows affected (0.00 sec)
|
Query OK, 0 rows affected (0.00 sec)
|
||||||
|
|
||||||
是不是已经删除了呢??
|
是不是已经删除了呢??
|
||||||
|
|
||||||
代码:
|
代码:
|
||||||
mysql\> show databases;
|
mysql> show databases;
|
||||||
+----------+
|
+----------+
|
||||||
| Database |
|
| Database |
|
||||||
+----------+
|
+----------+
|
||||||
| mysql |
|
| mysql |
|
||||||
| test |
|
| test |
|
||||||
+----------+
|
+----------+
|
||||||
2 rows in set (0.00 sec)
|
2 rows in set (0.00 sec)
|
||||||
|
|
||||||
5]如何操作一个数据库呢,这个问题就比较多了,建议还是看一下mysql的手册吧。里面的东西太多了。如果操作一个数据库,首先是要指定一个数据库为当前数据库,应该用use命令
|
5]如何操作一个数据库呢,这个问题就比较多了,建议还是看一下mysql的手册吧。里面的东西太多了。如果操作一个数据库,首先是要指定一个数据库为当前数据库,应该用use命令
|
||||||
|
|
||||||
mysql\>use [数据库];
|
mysql>use [数据库];
|
||||||
|
|
||||||
比如我想指定linux这个数据库为当前数据库,应该是
|
比如我想指定linux这个数据库为当前数据库,应该是
|
||||||
|
|
||||||
mysql\> use linux;
|
mysql> use linux;
|
||||||
Database changed
|
Database changed
|
||||||
|
|
||||||
6]如何备份数据库??
|
6]如何备份数据库??
|
||||||
@@ -214,13 +214,13 @@ Database changed
|
|||||||
|
|
||||||
命令格式如下:
|
命令格式如下:
|
||||||
|
|
||||||
shell\> mysqldump -uroot -p linux \> /root/linux.sql
|
shell> mysqldump -uroot -p linux > /root/linux.sql
|
||||||
Enter password:在这里输入数据库的密码
|
Enter password:在这里输入数据库的密码
|
||||||
|
|
||||||
通过上面的命令,我们要明白两件事,首先备份数据库是要以数据库管理员的身份备份;其次:备份目的地是/root,备份的文件名是linux.sql。其实备份的位置和文件名,根据自己的情况来定。文件名可以自己来取,路径也可以自己来安排;
|
通过上面的命令,我们要明白两件事,首先备份数据库是要以数据库管理员的身份备份;其次:备份目的地是/root,备份的文件名是linux.sql。其实备份的位置和文件名,根据自己的情况来定。文件名可以自己来取,路径也可以自己来安排;
|
||||||
|
|
||||||
比如我想把linux的数据库备份到/home/beinan,数据库的文件名为linuxsir031130.sql,所以应该输入如下的命令。
|
比如我想把linux的数据库备份到/home/beinan,数据库的文件名为linuxsir031130.sql,所以应该输入如下的命令。
|
||||||
shell\> mysqldump -uroot -p linux \> /home/beinan/linuxsir031130.sql
|
shell> mysqldump -uroot -p linux > /home/beinan/linuxsir031130.sql
|
||||||
Enter password:在这里输入数据库管理员root的数据库密码
|
Enter password:在这里输入数据库管理员root的数据库密码
|
||||||
|
|
||||||
这样我们到/home/beinan目录下就能发现mysql中名为linux的数据库的备份文件linuxsir031130.sql
|
这样我们到/home/beinan目录下就能发现mysql中名为linux的数据库的备份文件linuxsir031130.sql
|
||||||
@@ -233,7 +233,7 @@ Enter password:在这里输入数据库管理员root的数据库密码
|
|||||||
|
|
||||||
比如我们要把在/home/beinan这个目录中的linuxsir031130.sql这个备份,导入名为linux的数据库中,应该如下操作;
|
比如我们要把在/home/beinan这个目录中的linuxsir031130.sql这个备份,导入名为linux的数据库中,应该如下操作;
|
||||||
|
|
||||||
shell\> mysql -uroot -p linux \< /home/beinan/linuxsir031130.sql
|
shell> mysql -uroot -p linux < /home/beinan/linuxsir031130.sql
|
||||||
Enter password:在这里输入密码
|
Enter password:在这里输入密码
|
||||||
|
|
||||||
如果机器好,数据库比较小,几分钟就好了。
|
如果机器好,数据库比较小,几分钟就好了。
|
||||||
@@ -241,21 +241,21 @@ Enter password:在这里输入密码
|
|||||||
6]其它一些比较常用的mysql指令;
|
6]其它一些比较常用的mysql指令;
|
||||||
|
|
||||||
查看状态
|
查看状态
|
||||||
mysql\> show status;
|
mysql> show status;
|
||||||
|
|
||||||
查看进程
|
查看进程
|
||||||
|
|
||||||
代码:
|
代码:
|
||||||
mysql\> show processlist;
|
mysql> show processlist;
|
||||||
+----+------+-----------+------+---------+------+-------+------------------+| Id | User | Host | db | Command | Time | State | Info |
|
+----+------+-----------+------+---------+------+-------+------------------+| Id | User | Host | db | Command | Time | State | Info |
|
||||||
+----+------+-----------+------+---------+------+-------+------------------+| 16 | root | localhost | NULL | Query | 0 | NULL | show processlist |
|
+----+------+-----------+------+---------+------+-------+------------------+| 16 | root | localhost | NULL | Query | 0 | NULL | show processlist |
|
||||||
+----+------+-----------+------+---------+------+-------+------------------+
|
+----+------+-----------+------+---------+------+-------+------------------+
|
||||||
1 row in set (0.00 sec)
|
1 row in set (0.00 sec)
|
||||||
|
|
||||||
查看表,应该先指定一个数据库为当前数据库;比如是名为linux的数据库;
|
查看表,应该先指定一个数据库为当前数据库;比如是名为linux的数据库;
|
||||||
|
|
||||||
mysql\>use linux;
|
mysql>use linux;
|
||||||
mysql\> show tables;
|
mysql> show tables;
|
||||||
Empty set (0.00 sec)
|
Empty set (0.00 sec)
|
||||||
|
|
||||||
7]对mysql数据库常用命令的一点补充;
|
7]对mysql数据库常用命令的一点补充;
|
||||||
@@ -275,22 +275,22 @@ myisamchk 用来修复.myi后缀的数据库文件;
|
|||||||
比如我们要检查名为linux的数据库.myi数据库表是否存在问题,应该用下面的命令;
|
比如我们要检查名为linux的数据库.myi数据库表是否存在问题,应该用下面的命令;
|
||||||
|
|
||||||
要把mysqld服务器停下来
|
要把mysqld服务器停下来
|
||||||
shell\> ../share/mysql.server stop
|
shell> ../share/mysql.server stop
|
||||||
|
|
||||||
然后执行
|
然后执行
|
||||||
shell\> myisamchk ../var/linux/*.MYI
|
shell> myisamchk ../var/linux/*.MYI
|
||||||
|
|
||||||
上面的命令的意思就是检查所有的.myi文件,数据库的目录在../var/linux/目录中
|
上面的命令的意思就是检查所有的.myi文件,数据库的目录在../var/linux/目录中
|
||||||
|
|
||||||
如果有问题,应该用-r参数来修复
|
如果有问题,应该用-r参数来修复
|
||||||
shell\> myisamchk -r ../var/linux/*.MYI
|
shell> myisamchk -r ../var/linux/*.MYI
|
||||||
|
|
||||||
6]mysqlshow 命令:显示用户选择的数据库和表
|
6]mysqlshow 命令:显示用户选择的数据库和表
|
||||||
shell\> mysqlshow -uroot -p [数据库名]
|
shell> mysqlshow -uroot -p [数据库名]
|
||||||
|
|
||||||
比如我要查看名为linux的数据库;应该是:
|
比如我要查看名为linux的数据库;应该是:
|
||||||
|
|
||||||
shell\> mysqlshow -uroot -p linux
|
shell> mysqlshow -uroot -p linux
|
||||||
|
|
||||||
好了,到这里,你可能已经知道命令行下的所有基本操作了~
|
好了,到这里,你可能已经知道命令行下的所有基本操作了~
|
||||||
|
|
||||||
@@ -298,5 +298,7 @@ ps:补充一个。。
|
|||||||
|
|
||||||
更改ROOT帐号名。
|
更改ROOT帐号名。
|
||||||
|
|
||||||
|
```sql
|
||||||
update set user="新名字" where user="旧名字";
|
update set user="新名字" where user="旧名字";
|
||||||
\> 来自 \<[http://blog.csdn.net/princewong/article/details/2003658](http://blog.csdn.net/princewong/article/details/2003658)\>
|
```
|
||||||
|
> 来自 <[http://blog.csdn.net/princewong/article/details/2003658](http://blog.csdn.net/princewong/article/details/2003658)>
|
||||||
@@ -12,7 +12,7 @@ systemctl restart mysql
|
|||||||
vim /var/www/html/info.php
|
vim /var/www/html/info.php
|
||||||
输入
|
输入
|
||||||
[php] view plain copy
|
[php] view plain copy
|
||||||
\<?php
|
<?php
|
||||||
phpinfo();
|
phpinfo();
|
||||||
?\>
|
?>
|
||||||
保存后访问你的域名或者公网ip:your_server_ip/info.php,看看有没有对应的信息,有就说明成功了。
|
保存后访问你的域名或者公网ip:your_server_ip/info.php,看看有没有对应的信息,有就说明成功了。
|
||||||
@@ -22,7 +22,9 @@ mysql相关操作
|
|||||||
[plain] view plain copy
|
[plain] view plain copy
|
||||||
mysql -u root -p
|
mysql -u root -p
|
||||||
[sql] view plain copy
|
[sql] view plain copy
|
||||||
|
```sql
|
||||||
CREATE DATABASE wordpress character set utf8 collate utf8_bin;
|
CREATE DATABASE wordpress character set utf8 collate utf8_bin;
|
||||||
|
```
|
||||||
GRANT ALL PRIVILEGES on wordpress.* to 'wpuser'@'localhost' identified by 'your_password';
|
GRANT ALL PRIVILEGES on wordpress.* to 'wpuser'@'localhost' identified by 'your_password';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
exit
|
exit
|
||||||
@@ -48,11 +50,11 @@ vim /etc/apache2/sites-available/000-default.conf
|
|||||||
ServerAdmin webmaster@localhost
|
ServerAdmin webmaster@localhost
|
||||||
DocumentRoot /var/www/html
|
DocumentRoot /var/www/html
|
||||||
ServerName server1.example.com
|
ServerName server1.example.com
|
||||||
\<Directory /var/www/html/\>
|
<Directory /var/www/html/>
|
||||||
AllowOverride All
|
AllowOverride All
|
||||||
\</Directory\>
|
</Directory>
|
||||||
[...]
|
[...]
|
||||||
就是在里面添加上ServerName到\</Directory\>这一段
|
就是在里面添加上ServerName到</Directory>这一段
|
||||||
允许URL的重写以及Apache2的重启
|
允许URL的重写以及Apache2的重启
|
||||||
[plain] view plain copy
|
[plain] view plain copy
|
||||||
a2enmod rewrite
|
a2enmod rewrite
|
||||||
|
|||||||
@@ -1,28 +1,28 @@
|
|||||||
==关于====mysql====的用户管理,笔记==
|
==关于====mysql====的用户管理,笔记==
|
||||||
|
|
||||||
==1====、创建新用户==
|
==1====、创建新用户==
|
||||||
==通过====root====用户登录之后创建==
|
==通过====root====用户登录之后创建==
|
||||||
==\>\>== ==grant all privileges on *.* to== ==testuser====@localhost identified by== =="123456"== ==;== ==//== ==创建新用户,用户名为====testuser====,密码为====123456== ==;==
|
==>>== ==grant all privileges on *.* to== ==testuser====@localhost identified by== =="123456"== ==;== ==//== ==创建新用户,用户名为====testuser====,密码为====123456== ==;==
|
||||||
==\>\>== ==grant all privileges on *.* to== ==testuser====@localhost identified by== =="123456"== ==;== ==//== ==设置用户====testuser====,可以在本地访问====mysql==
|
==>>== ==grant all privileges on *.* to== ==testuser====@localhost identified by== =="123456"== ==;== ==//== ==设置用户====testuser====,可以在本地访问====mysql==
|
||||||
==\>\>== ==grant all privileges on *.* to== ==testuser====@"%" identified by== =="123456"== ==;== ==//== ==设置用户====testuser====,可以在远程访问====mysql==
|
==>>== ==grant all privileges on *.* to== ==testuser====@"%" identified by== =="123456"== ==;== ==//== ==设置用户====testuser====,可以在远程访问====mysql==
|
||||||
==\>\>== ==flush privileges== ==;== ==//== ==mysql== ==新设置用户或更改密码后需用====flush privileges====刷新====MySQL====的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动====mysql====服务器,来使新设置生效==
|
==>>== ==flush privileges== ==;== ==//== ==mysql== ==新设置用户或更改密码后需用====flush privileges====刷新====MySQL====的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动====mysql====服务器,来使新设置生效==
|
||||||
==2====、设置用户访问数据库权限==
|
==2====、设置用户访问数据库权限==
|
||||||
==\>\>== ==grant all privileges on== ==test_db.*== ==to== ==testuser@localhost identified by "123456" ;== ==//== ==设置用户====testuser====,只能访问数据库====test_db====,其他数据库均不能访问== ==;==
|
==>>== ==grant all privileges on== ==test_db.*== ==to== ==testuser@localhost identified by "123456" ;== ==//== ==设置用户====testuser====,只能访问数据库====test_db====,其他数据库均不能访问== ==;==
|
||||||
==\>\>== ==grant all privileges on== ==*.*== ==to== ==testuser@localhost identified by "123456" ;== ==//== ==设置用户====testuser====,可以访问====mysql====上的所有数据库== ==;==
|
==>>== ==grant all privileges on== ==*.*== ==to== ==testuser@localhost identified by "123456" ;== ==//== ==设置用户====testuser====,可以访问====mysql====上的所有数据库== ==;==
|
||||||
==\>\>== ==grant all privileges on== ==test_db.user_infor== ==to== ==testuser@localhost identified by "123456" ;== ==//== ==设置用户====testuser====,只能访问数据库====test_db====的表====user_infor====,数据库中的其他表均不能访问== ==;==
|
==>>== ==grant all privileges on== ==test_db.user_infor== ==to== ==testuser@localhost identified by "123456" ;== ==//== ==设置用户====testuser====,只能访问数据库====test_db====的表====user_infor====,数据库中的其他表均不能访问== ==;==
|
||||||
==3====、设置用户操作权限==
|
==3====、设置用户操作权限==
|
||||||
==\>\>== ==grant== ==all privileges== ==on *.* to== ==testuser@localhost identified by "123456" WITH GRANT OPTION== ==;== ==//====设置用户====testuser====,拥有所有的操作权限,也就是管理员== ==;==
|
==>>== ==grant== ==all privileges== ==on *.* to== ==testuser@localhost identified by "123456" WITH GRANT OPTION== ==;== ==//====设置用户====testuser====,拥有所有的操作权限,也就是管理员== ==;==
|
||||||
==\>\> grant== ==select== ==on *.* to== ==testuser@localhost identified by "123456" WITH GRANT OPTION== ==;== ==//====设置用户====testuser====,只拥有【查询】操作权限== ==;==
|
==>> grant== ==select== ==on *.* to== ==testuser@localhost identified by "123456" WITH GRANT OPTION== ==;== ==//====设置用户====testuser====,只拥有【查询】操作权限== ==;==
|
||||||
==\>\>== ==grant== ==select,insert== ==on *.* to== ==testuser@localhost identified by "123456"== ==;== ==//====设置用户====testuser====,只拥有【查询====\====插入】操作权限== ==;==
|
==>>== ==grant== ==select,insert== ==on *.* to== ==testuser@localhost identified by "123456"== ==;== ==//====设置用户====testuser====,只拥有【查询====\====插入】操作权限== ==;==
|
||||||
==\>\>== ==grant== ==select,insert,update,delete== ==on *.* to== ==testuser@localhost identified by "123456"== ==;== ==//====设置用户====testuser====,只拥有【查询====\====插入】操作权限== ==;==
|
==>>== ==grant== ==select,insert,update,delete== ==on *.* to== ==testuser@localhost identified by "123456"== ==;== ==//====设置用户====testuser====,只拥有【查询====\====插入】操作权限== ==;==
|
||||||
==\>\>== ==REVOKE== ==select,insert== ==ON what FROM== ==testuser====//====取消用户====testuser====的【查询====\====插入】操作权限== ==;==
|
==>>== ==REVOKE== ==select,insert== ==ON what FROM== ==testuser====//====取消用户====testuser====的【查询====\====插入】操作权限== ==;==
|
||||||
==4====、设置用户远程访问权限==
|
==4====、设置用户远程访问权限==
|
||||||
==\>\>== ==grant all privileges on *.* to== ==testuser@====“192.168.1.100”== ==identified by== =="123456"== ==;== ==//====设置用户====testuser====,只能在客户端====IP====为====192.168.1.100====上才能远程访问====mysql== ==;==
|
==>>== ==grant all privileges on *.* to== ==testuser@====“192.168.1.100”== ==identified by== =="123456"== ==;== ==//====设置用户====testuser====,只能在客户端====IP====为====192.168.1.100====上才能远程访问====mysql== ==;==
|
||||||
==5====、关于====root====用户的访问设置==
|
==5====、关于====root====用户的访问设置==
|
||||||
==设置所有用户可以远程访问====mysql====,====修改====my.cnf====配置文件,将====bind-address = 127.0.0.1====前面加====“#”====注释掉====,这样就可以允许其他机器远程访问本机====mysql====了;==
|
==设置所有用户可以远程访问====mysql====,====修改====my.cnf====配置文件,将====bind-address = 127.0.0.1====前面加====“#”====注释掉====,这样就可以允许其他机器远程访问本机====mysql====了;==
|
||||||
==\>\>== ==grant all privileges on *.* to== ==root@"%" identified by== =="123456"== ==;== ==//== ==设置用户====root====,可以在远程访问====mysql==
|
==>>== ==grant all privileges on *.* to== ==root@"%" identified by== =="123456"== ==;== ==//== ==设置用户====root====,可以在远程访问====mysql==
|
||||||
==\>\>== ==select host,user from user;== ==//====查询====mysql====中所有用户权限==
|
==>>== ==select host,user from user;== ==//====查询====mysql====中所有用户权限==
|
||||||
==关闭====root====用户远程访问权限==
|
==关闭====root====用户远程访问权限==
|
||||||
==\>\>== ==delete from user where user="root" and host="%" ;== ==//====禁止====root====用户在远程机器上访问====mysql==
|
==>>== ==delete from user where user="root" and host="%" ;== ==//====禁止====root====用户在远程机器上访问====mysql==
|
||||||
==\>\>== ==flush privileges== ==;== ==//====修改权限之后,刷新====MySQL====的系统权限相关表方可生效==
|
==>>== ==flush privileges== ==;== ==//====修改权限之后,刷新====MySQL====的系统权限相关表方可生效==
|
||||||
\> 来自 \<[https://www.cnblogs.com/candle806/p/4048651.html](https://www.cnblogs.com/candle806/p/4048651.html)\>
|
> 来自 <[https://www.cnblogs.com/candle806/p/4048651.html](https://www.cnblogs.com/candle806/p/4048651.html)>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
远程连接密码: 148880
|
远程连接密码: 148880
|
||||||
|
|
||||||
120.78.214.77(公)
|
120.78.214.77(公)
|
||||||
\>
|
>
|
||||||
|
|
||||||
Mysql root 1q2w3e4r
|
Mysql root 1q2w3e4r
|
||||||
phpmyadmin 1q2w3e4r
|
phpmyadmin 1q2w3e4r
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
BCWP=EV
|
BCWP=EV
|
||||||
BCWS=PV
|
BCWS=PV
|
||||||
BAC 绩效测量基准 资金需求
|
BAC 绩效测量基准 资金需求
|
||||||
道德与专业行为规范==\> 责任,尊重,公正,诚实
|
道德与专业行为规范==> 责任,尊重,公正,诚实
|
||||||
通用项目的生命周期4阶段==\>开始项目,组织与准备,执行项目工作,结束项目
|
通用项目的生命周期4阶段==>开始项目,组织与准备,执行项目工作,结束项目
|
||||||
|
|
||||||
项目经理的胜任力==\>技术项目管理,领导力,战略和商务能力
|
项目经理的胜任力==>技术项目管理,领导力,战略和商务能力
|
||||||
整合的三个层面==\>过程层面整合,认知层面整合,背景层面整合
|
整合的三个层面==>过程层面整合,认知层面整合,背景层面整合
|
||||||
@@ -23,8 +23,8 @@
|
|||||||
|
|
||||||
- 工作模板
|
- 工作模板
|
||||||
- 工作指南
|
- 工作指南
|
||||||
- 共享知识库
|
- 共享知识库
|
||||||
|
|
||||||
4、事业环境因素和组织过程资产最重要的区分方式是什么?
|
4、事业环境因素和组织过程资产最重要的区分方式是什么?
|
||||||
|
|
||||||
\> 答:主要区分方式
|
> 答:主要区分方式
|
||||||
@@ -6,4 +6,4 @@
|
|||||||
|Xamarin|iOS, Android, macOS|是|构建iOS、Android移动应用程序、macOS桌面应用程序|
|
|Xamarin|iOS, Android, macOS|是|构建iOS、Android移动应用程序、macOS桌面应用程序|
|
||||||
|.NET Standard|N/A|是|创建可以被所有.NET实现(如.NET Core和.NET Framework)所引用的类库|
|
|.NET Standard|N/A|是|创建可以被所有.NET实现(如.NET Core和.NET Framework)所引用的类库|
|
||||||
|
|
||||||
\> 来自 \<[https://blog.csdn.net/chengbin0602/article/details/80424520](https://blog.csdn.net/chengbin0602/article/details/80424520)\>
|
> 来自 <[https://blog.csdn.net/chengbin0602/article/details/80424520](https://blog.csdn.net/chengbin0602/article/details/80424520)>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||

|

|
||||||
|
|
||||||
问题库,经验库——\>定期刷新到技术规范
|
问题库,经验库——>定期刷新到技术规范
|
||||||
问题提炼,让新人可以总揽问题库
|
问题提炼,让新人可以总揽问题库
|
||||||
|
|
||||||
跟技术线和项目线的 矩阵管理中? 是按照项目维度还是技术线的维度。
|
跟技术线和项目线的 矩阵管理中? 是按照项目维度还是技术线的维度。
|
||||||
|
|||||||
7
工作记录/FMEA+APQP/问题关联&FMEA 绑定.md
Executable file
7
工作记录/FMEA+APQP/问题关联&FMEA 绑定.md
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
||||||
|
<html><head>
|
||||||
|
<title>404 Not Found</title>
|
||||||
|
</head><body>
|
||||||
|
<h1>Not Found</h1>
|
||||||
|
<p>The requested URL was not found on this server.</p>
|
||||||
|
</body></html>
|
||||||
@@ -2,13 +2,17 @@
|
|||||||
2、打开数据库,执行下列sql语句 查看雨量过滤表的数据情况。如果数据不齐全,就确认为数据过滤问题。
|
2、打开数据库,执行下列sql语句 查看雨量过滤表的数据情况。如果数据不齐全,就确认为数据过滤问题。
|
||||||
|
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM [ZHDMTProj].[dbo].[YLJ_clean] where Style\>0
|
```sql
|
||||||
|
FROM [ZHDMTProj].[dbo].[YLJ_clean] where Style>0
|
||||||
|
```
|
||||||
order by aDatetime desc
|
order by aDatetime desc
|
||||||
3、停止SG采集程序,暂停数据入库。
|
3、停止SG采集程序,暂停数据入库。
|
||||||
4、找到开始缺失的过滤时间点。 执行下列语句,删除影响程序运行的历史数据。(用缺失时间点替换下面的2018-07-01 23:59:59.000)
|
4、找到开始缺失的过滤时间点。 执行下列语句,删除影响程序运行的历史数据。(用缺失时间点替换下面的2018-07-01 23:59:59.000)
|
||||||
|
```sql
|
||||||
delete FROM [ZHDMTProj].[dbo].[YLJ_clean]
|
delete FROM [ZHDMTProj].[dbo].[YLJ_clean]
|
||||||
where aDatetime\>'2018-07-01 23:59:59.000'
|
where aDatetime>'2018-07-01 23:59:59.000'
|
||||||
|
|
||||||
|
```
|
||||||
5、重启SG采集程序,1分钟以内就可以完成重新过滤审核任务。
|
5、重启SG采集程序,1分钟以内就可以完成重新过滤审核任务。
|
||||||
|
|
||||||
6、打开网站验证数据是否正常展示。
|
6、打开网站验证数据是否正常展示。
|
||||||
@@ -31,7 +31,7 @@ Harbor 同步aliyun 账号密码
|
|||||||
kafka-manager
|
kafka-manager
|
||||||
admin/zhdbds.123
|
admin/zhdbds.123
|
||||||
|
|
||||||
\> [http://10.10.200.175:9000/](http://10.10.200.175:9000/)
|
> [http://10.10.200.175:9000/](http://10.10.200.175:9000/)
|
||||||
|
|
||||||
[http://218.20.222.234:30041/](http://218.20.222.234:30041/)
|
[http://218.20.222.234:30041/](http://218.20.222.234:30041/)
|
||||||
Gitlab
|
Gitlab
|
||||||
|
|||||||
3
工作记录/公共/layuiAdmin.md
Executable file
3
工作记录/公共/layuiAdmin.md
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
用户密码
|
||||||
|
13174513171
|
||||||
|
123456
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[https://dev.dcloud.net.cn/](http://javascript:;)
|
[https://dev.dcloud.net.cn/](http://javascript:;)
|
||||||
|
|
||||||
support@[zhdbds.com](http://javascript:;)
|
support@[zhdbds.com](http://javascript:;)
|
||||||
zhdbdsuniapp
|
zhdbdsuniapp
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
Test项目
|
Test项目
|
||||||
管理员
|
管理员
|
||||||
Test
|
Test
|
||||||
?qd\RV:i\Z}\<PgDj6'%x
|
?qd\RV:i\Z}<PgDj6'%x
|
||||||
@@ -50,7 +50,7 @@ Username: msftp
|
|||||||
Password: ftp@123
|
Password: ftp@123
|
||||||
|
|
||||||
**172.16.36.249****(** **远程连接密码: 884454**
|
**172.16.36.249****(** **远程连接密码: 884454**
|
||||||
\> **来自** **\<****https://ecs.console.aliyun.com/vnc/index.htm?spm=5176.2020520101.107.d515.c19a4df5vZ1NPI&instanceId=i-m5efjfnoa7n7dfkk8652®ionId=cn-qingdao****\>**
|
> **来自** **<****https://ecs.console.aliyun.com/vnc/index.htm?spm=5176.2020520101.107.d515.c19a4df5vZ1NPI&instanceId=i-m5efjfnoa7n7dfkk8652®ionId=cn-qingdao****>**
|
||||||
|
|
||||||
118 两个远程账户
|
118 两个远程账户
|
||||||
++++解算软件和技术用
|
++++解算软件和技术用
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
zhdbds_sms 阿里云短信服务
|
zhdbds_sms 阿里云短信服务
|
||||||
|
|
||||||
\> 来自 \<[https://ram.console.aliyun.com/?spm=a2c4g.11186623.2.12.74a55f814KPrrd#/user/list](https://ram.console.aliyun.com/?spm=a2c4g.11186623.2.12.74a55f814KPrrd#/user/list)\>
|
> 来自 <[https://ram.console.aliyun.com/?spm=a2c4g.11186623.2.12.74a55f814KPrrd#/user/list](https://ram.console.aliyun.com/?spm=a2c4g.11186623.2.12.74a55f814KPrrd#/user/list)>
|
||||||
|
|
||||||
攀枝花盐边项目
|
攀枝花盐边项目
|
||||||
yanbian_sms
|
yanbian_sms
|
||||||
|
|||||||
@@ -11,18 +11,18 @@
|
|||||||
|
|
||||||
轻、小、多合一
|
轻、小、多合一
|
||||||
|
|
||||||
无人机测流技术可行性考察,产品可靠性 。 高灵敏度的产品信息M300\>?
|
无人机测流技术可行性考察,产品可靠性 。 高灵敏度的产品信息M300>?
|
||||||
7. 产品:质量、性能,生产能力
|
7. 产品:质量、性能,生产能力
|
||||||
8. 供应商团队:
|
8. 供应商团队:
|
||||||
9. 配合力度,边界(软硬件)、资料
|
9. 配合力度,边界(软硬件)、资料
|
||||||
10. 可行性: 软件不建议用/-\> 有一些参考资料 ,技术路线对接 ?固件/算法?
|
10. 可行性: 软件不建议用/-> 有一些参考资料 ,技术路线对接 ?固件/算法?
|
||||||
11. 合作保障方面: 安排对接人员, 可以提供什么支撑》达到什么力度? 定制扩展?
|
11. 合作保障方面: 安排对接人员, 可以提供什么支撑》达到什么力度? 定制扩展?
|
||||||
12. 打开具体来看产品资料来看。
|
12. 打开具体来看产品资料来看。
|
||||||
13. 流速板子有可能变更,2季度会变更新的高灵敏板子。无人机不会改。提供资料。
|
13. 流速板子有可能变更,2季度会变更新的高灵敏板子。无人机不会改。提供资料。
|
||||||
新产品:手持电波流速仪 贴牌?。(高灵敏流速仪 0.03m/s,实测 稳定0.1m/s)=\> 硬件是他们实现。联合开发, APP 我们定制(通信协议)?合作授权,类似珠江委员会合作那样。 蓝牙… 平台集成
|
新产品:手持电波流速仪 贴牌?。(高灵敏流速仪 0.03m/s,实测 稳定0.1m/s)=> 硬件是他们实现。联合开发, APP 我们定制(通信协议)?合作授权,类似珠江委员会合作那样。 蓝牙… 平台集成
|
||||||
|
|
||||||
最快四季度。
|
最快四季度。
|
||||||
=\> 提供相关的概要说明? 概要框架和内容。内部项目流程审核。判断技术可行性,走内部IPD集成产品流程。
|
=> 提供相关的概要说明? 概要框架和内容。内部项目流程审核。判断技术可行性,走内部IPD集成产品流程。
|
||||||
|
|
||||||
短期:标准品现有导入? 想法?
|
短期:标准品现有导入? 想法?
|
||||||
中长期:电波流速联合合作开发?
|
中长期:电波流速联合合作开发?
|
||||||
@@ -79,7 +79,7 @@ DJI 接口去年更改 24年初。
|
|||||||
横滚角 +3度范围内。
|
横滚角 +3度范围内。
|
||||||
|
|
||||||
别飞机: 转rj45 雷达协议
|
别飞机: 转rj45 雷达协议
|
||||||
Dji 雷达协议 =\>
|
Dji 雷达协议 =>
|
||||||
测试项目:
|
测试项目:
|
||||||
|
|
||||||
1、测试环境搭建:使用跑步机+转速表 去测 流速(或 撒点水)给个建议。
|
1、测试环境搭建:使用跑步机+转速表 去测 流速(或 撒点水)给个建议。
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ zhdbds_123456
|
|||||||
vrs账号密码
|
vrs账号密码
|
||||||
GDGZ00201
|
GDGZ00201
|
||||||
|
|
||||||
\> zhdbds20190627
|
> zhdbds20190627
|
||||||
GDGZ00202
|
GDGZ00202
|
||||||
Zhdbds03
|
Zhdbds03
|
||||||
|
|
||||||
|
|||||||
@@ -29,8 +29,10 @@ system naricom
|
|||||||
|
|
||||||
传感器信息
|
传感器信息
|
||||||
SELECT *
|
SELECT *
|
||||||
|
```sql
|
||||||
FROM [wds].[WDS].[SENSOR]
|
FROM [wds].[WDS].[SENSOR]
|
||||||
where DCHAR =100 or DCHAR=201
|
where DCHAR =100 or DCHAR=201
|
||||||
|
```
|
||||||
DCHAR =100 雨量站
|
DCHAR =100 雨量站
|
||||||
DCHAR=201 水位站
|
DCHAR=201 水位站
|
||||||
|
|
||||||
@@ -40,12 +42,16 @@ RTUTYPE=44 为自动气象站
|
|||||||
RTUTYPE=1 为水文站
|
RTUTYPE=1 为水文站
|
||||||
|
|
||||||
SELECT *
|
SELECT *
|
||||||
|
```sql
|
||||||
FROM [wds].[WDS].[RTU]
|
FROM [wds].[WDS].[RTU]
|
||||||
|
|
||||||
|
```
|
||||||
HOURDB 存储的是小时数据
|
HOURDB 存储的是小时数据
|
||||||
SELECT *
|
SELECT *
|
||||||
|
```sql
|
||||||
FROM [wds].[WDS].[HOURDB]
|
FROM [wds].[WDS].[HOURDB]
|
||||||
where SENID=603011014
|
where SENID=603011014
|
||||||
|
```
|
||||||
order by time desc
|
order by time desc
|
||||||

|

|
||||||

|

|
||||||
|
|||||||
@@ -4,10 +4,14 @@
|
|||||||
应该展示安装高度减去水位高度为 仪器到孔口高度。
|
应该展示安装高度减去水位高度为 仪器到孔口高度。
|
||||||
|
|
||||||
1、删除原始表 有问题数据 ,记住不要删多。
|
1、删除原始表 有问题数据 ,记住不要删多。
|
||||||
|
```sql
|
||||||
DELETE FROM [dbo].[库水位1]
|
DELETE FROM [dbo].[库水位1]
|
||||||
WHERE aDatetime\>='2018-08-24 10:00' and aDatetime\<'2018-08-24 12:00'
|
WHERE aDatetime>='2018-08-24 10:00' and aDatetime<'2018-08-24 12:00'
|
||||||
|
```
|
||||||
2、删除过滤表数据
|
2、删除过滤表数据
|
||||||
|
```sql
|
||||||
DELETE FROM [dbo].[库水位1_clean]
|
DELETE FROM [dbo].[库水位1_clean]
|
||||||
|
```
|
||||||
3、重启SG.自动过滤.
|
3、重启SG.自动过滤.
|
||||||
4、验证是否恢复。
|
4、验证是否恢复。
|
||||||
5、其他站点,更换站点名。重复上述1-4的操作
|
5、其他站点,更换站点名。重复上述1-4的操作
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ vnet 远程端口 :118.190.41.197 :9999
|
|||||||
卫星原始数据报送端口 :118.190.41.197 :63355
|
卫星原始数据报送端口 :118.190.41.197 :63355
|
||||||
|
|
||||||
himonitor2.0 的登录密码发送变更 admin zhdbds_123
|
himonitor2.0 的登录密码发送变更 admin zhdbds_123
|
||||||
\>
|
>
|
||||||
|
|
||||||
禾草沟账号 :禾草沟 123456
|
禾草沟账号 :禾草沟 123456
|
||||||
接收机数据回传到服务器,之后通过CtoC将数据发送到HI-MONITOR
|
接收机数据回传到服务器,之后通过CtoC将数据发送到HI-MONITOR
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
1433 ++++++++++++++++\>准备 删除
|
1433 ++++++++++++++++>准备 删除
|
||||||
2101 待登记确认 ++++++++++++++++\>准备 删除
|
2101 待登记确认 ++++++++++++++++>准备 删除
|
||||||
9000 待登记确认 ++++++++++++++++\>准备 删除
|
9000 待登记确认 ++++++++++++++++>准备 删除
|
||||||
9001 待登记确认 ++++++++++++++++\>准备 删除
|
9001 待登记确认 ++++++++++++++++>准备 删除
|
||||||
|
|
||||||
8088 待登记确认 ++++++++++++++++\>准备 删除
|
8088 待登记确认 ++++++++++++++++>准备 删除
|
||||||
8089 ICS500 机械网站
|
8089 ICS500 机械网站
|
||||||
8090 HiMonitor 2.0 网站
|
8090 HiMonitor 2.0 网站
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,18 @@
|
|||||||
```
|
```
|
||||||
|
```
|
||||||
listen 1064;
|
listen 1064;
|
||||||
server_name 10.10.200.45;
|
server_name 10.10.200.45;
|
||||||
#charset koi8-r;
|
# charset koi8-r;
|
||||||
#access_log logs/host.access.log main;
|
# access_log logs/host.access.log main;
|
||||||
location / {
|
location / {
|
||||||
root html;
|
root html;
|
||||||
|
```sql
|
||||||
index index.html index.htm;
|
index index.html index.htm;
|
||||||
|
```
|
||||||
add_header Access-Control-Allow-Origin *;
|
add_header Access-Control-Allow-Origin *;
|
||||||
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
|
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
|
||||||
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
|
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
|
||||||
proxy_pass http://10.10.200.45:1060;
|
proxy_pass http://10.10.200.45:1060;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
```
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
EF7 code first 尝试(
|
EF7 code first 尝试(
|
||||||
EntityFramework Reverse POCO Generator
|
EntityFramework Reverse POCO Generator
|
||||||
\> 来自 \<[https://marketplace.visualstudio.com/items?itemName=SimonHughes.EntityFrameworkReversePOCOGenerator](https://marketplace.visualstudio.com/items?itemName=SimonHughes.EntityFrameworkReversePOCOGenerator)\>
|
> 来自 <[https://marketplace.visualstudio.com/items?itemName=SimonHughes.EntityFrameworkReversePOCOGenerator](https://marketplace.visualstudio.com/items?itemName=SimonHughes.EntityFrameworkReversePOCOGenerator)>
|
||||||
)
|
)
|
||||||
automapper
|
automapper
|
||||||
IdentityServer 尝试
|
IdentityServer 尝试
|
||||||
|
|||||||
1
工作记录/研发/片段业务积累.md
Executable file
1
工作记录/研发/片段业务积累.md
Executable file
@@ -0,0 +1 @@
|
|||||||
|
人工填报
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
“十三五”时期地质灾害防治工作的目标是,全面完成山地丘陵区地质灾害详细调查和重点地区地面沉降、地裂缝和岩溶塌陷调查,全面完成全国重点防治区地质灾害防治高标准“十有县”建设,实现山地丘陵区市、县两级地质灾害气象预警预报工作全覆盖,完善提升以群测群防为基础的群专结合监测网络,基本完成已发现的威胁人员密集区重大地质灾害隐患的工程治理。到2020年,建成系统完善的地质灾害调查评价、监测预警、综合治理、应急防治四大体系,全面提升基层地质灾害防御能力。
|
“十三五”时期地质灾害防治工作的目标是,全面完成山地丘陵区地质灾害详细调查和重点地区地面沉降、地裂缝和岩溶塌陷调查,全面完成全国重点防治区地质灾害防治高标准“十有县”建设,实现山地丘陵区市、县两级地质灾害气象预警预报工作全覆盖,完善提升以群测群防为基础的群专结合监测网络,基本完成已发现的威胁人员密集区重大地质灾害隐患的工程治理。到2020年,建成系统完善的地质灾害调查评价、监测预警、综合治理、应急防治四大体系,全面提升基层地质灾害防御能力。
|
||||||
\> 来自 \<[http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm](http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm)\>
|
> 来自 <[http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm](http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm)>
|
||||||
实施监测预警,强化监测队伍力量,完善地质灾害监测预警体系,及时发出防灾减灾警示信息,是避免地质灾害造成人员伤亡的重要手段。主要工作任务:一是进一步加强国家、省、市、县四级地质灾害气象预警预报工作,实现山地丘陵县(市、区)全覆盖,进一步提高地质灾害预警信息发布针对性和时效性。二是推广网格化管理等先进典型经验,进一步完善全覆盖的地质灾害群测群防监测网络,充分发挥专业队伍监测作用,完善专业监测队伍驻守制度,构建群测群防与专业监测有机融合的监测网络,开展威胁城镇、重大工程所在区域、交通干线及其它重要设施的3000处地质灾害隐患专业监测。三是健全完善地面沉降重点防治区的地面沉降监测网络,推进国土、水利、规划、建设等部门的监测网络数据共享。
|
实施监测预警,强化监测队伍力量,完善地质灾害监测预警体系,及时发出防灾减灾警示信息,是避免地质灾害造成人员伤亡的重要手段。主要工作任务:一是进一步加强国家、省、市、县四级地质灾害气象预警预报工作,实现山地丘陵县(市、区)全覆盖,进一步提高地质灾害预警信息发布针对性和时效性。二是推广网格化管理等先进典型经验,进一步完善全覆盖的地质灾害群测群防监测网络,充分发挥专业队伍监测作用,完善专业监测队伍驻守制度,构建群测群防与专业监测有机融合的监测网络,开展威胁城镇、重大工程所在区域、交通干线及其它重要设施的3000处地质灾害隐患专业监测。三是健全完善地面沉降重点防治区的地面沉降监测网络,推进国土、水利、规划、建设等部门的监测网络数据共享。
|
||||||
\> 来自 \<[http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm](http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm)\>
|
> 来自 <[http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm](http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm)>
|
||||||
|
|
||||||
地质灾害防治“五化”模式
|
地质灾害防治“五化”模式
|
||||||
一是 **管理支撑层级化** 。建立制度约束下的县、乡、村三层行政管理和专业队伍、县级地质环境监测站、乡国土所三级技术支撑相结合的地质灾害防治体系。
|
一是 **管理支撑层级化** 。建立制度约束下的县、乡、村三层行政管理和专业队伍、县级地质环境监测站、乡国土所三级技术支撑相结合的地质灾害防治体系。
|
||||||
@@ -9,10 +9,10 @@
|
|||||||
三是 **数据采集智能化** 。实现地质灾害调查、群测群防监测和地质灾害点三维遥感数据智能化采集。
|
三是 **数据采集智能化** 。实现地质灾害调查、群测群防监测和地质灾害点三维遥感数据智能化采集。
|
||||||
四是 **预警预报及时化** 。实现群测群防监测预警预报及时化和地质灾害气象预警及时化。
|
四是 **预警预报及时化** 。实现群测群防监测预警预报及时化和地质灾害气象预警及时化。
|
||||||
五是 **信息服务一体化** 。实现地质灾害防灾减灾全过程信息化和信息管理与服务一体化,实现全国四级地质灾害数据库更新一体化。
|
五是 **信息服务一体化** 。实现地质灾害防灾减灾全过程信息化和信息管理与服务一体化,实现全国四级地质灾害数据库更新一体化。
|
||||||
\> 来自 \<[http://www.cigem.gov.cn/auto/db/detail.aspx?db=1006&rid=40955&agfi=0&cls=0&uni=False&cid=0&showgp=False&prec=False&md=20&pd=210&msd=11&psd=5&mdd=11&pdd=5&count=20](http://www.cigem.gov.cn/auto/db/detail.aspx?db=1006&rid=40955&agfi=0&cls=0&uni=False&cid=0&showgp=False&prec=False&md=20&pd=210&msd=11&psd=5&mdd=11&pdd=5&count=20)\>
|
> 来自 <[http://www.cigem.gov.cn/auto/db/detail.aspx?db=1006&rid=40955&agfi=0&cls=0&uni=False&cid=0&showgp=False&prec=False&md=20&pd=210&msd=11&psd=5&mdd=11&pdd=5&count=20](http://www.cigem.gov.cn/auto/db/detail.aspx?db=1006&rid=40955&agfi=0&cls=0&uni=False&cid=0&showgp=False&prec=False&md=20&pd=210&msd=11&psd=5&mdd=11&pdd=5&count=20)>
|
||||||
|
|
||||||
网格化、智能化的地质灾害群测群防技术体系,完善远程会商系统,建立全国统一的地质灾害应急指挥平台
|
网格化、智能化的地质灾害群测群防技术体系,完善远程会商系统,建立全国统一的地质灾害应急指挥平台
|
||||||
\> 来自 \<[http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm](http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm)\>
|
> 来自 <[http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm](http://www.mlr.gov.cn/wszb/2017/dzzh/zhibozhaiyao/201701/t20170118_1427134.htm)>
|
||||||
|
|
||||||
监测——
|
监测——
|
||||||
预警——大数据分析
|
预警——大数据分析
|
||||||
|
|||||||
@@ -3,23 +3,23 @@
|
|||||||
3、启动MariaDB:systemctl start mariadb
|
3、启动MariaDB:systemctl start mariadb
|
||||||
4、初始化配置:mysql_secure_installation
|
4、初始化配置:mysql_secure_installation
|
||||||
4.1、设置密码,会提示先输入密码
|
4.1、设置密码,会提示先输入密码
|
||||||
Enter current password for root (enter for none):\<–初次运行直接回车
|
Enter current password for root (enter for none):<–初次运行直接回车
|
||||||
Set root password? [Y/n] \<– 是否设置root用户密码,输入y并回车或直接回车
|
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
|
||||||
New password: \<– 设置root用户的密码
|
New password: <– 设置root用户的密码
|
||||||
Re-enter new password: \<– 再输入一次你设置的密码
|
Re-enter new password: <– 再输入一次你设置的密码
|
||||||
4.2、其他配置
|
4.2、其他配置
|
||||||
Remove anonymous users? [Y/n] \<– 是否删除匿名用户,回车
|
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
|
||||||
Disallow root login remotely? [Y/n] \<–是否禁止root远程登录,回车,
|
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
|
||||||
Remove test database and access to it? [Y/n] \<– 是否删除test数据库,回车
|
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
|
||||||
Reload privilege tables now? [Y/n] \<– 是否重新加载权限表,回车
|
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
|
||||||
初始化MariaDB完成,接下来测试登录
|
初始化MariaDB完成,接下来测试登录
|
||||||
mysql -uroot -p你的密码
|
mysql -uroot -p你的密码
|
||||||
完成。
|
完成。
|
||||||
==5、设置远程登录:==
|
==5、设置远程登录:==
|
||||||
==使用mysql -uroot -p密码登录后,执行命令:==
|
==使用mysql -uroot -p密码登录后,执行命令:==
|
||||||
==GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码的明文' WITH GRANT OPTION;==
|
==GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码的明文' WITH GRANT OPTION;==
|
||||||
==FLUSH PRIVILEGES;==
|
==FLUSH PRIVILEGES;==
|
||||||
==6、如果远程访问,并且数据量很大,则需要进行如下配置,否则会出现==**MySQL server has gone away** ==的==
|
==6、如果远程访问,并且数据量很大,则需要进行如下配置,否则会出现==**MySQL server has gone away** ==的==
|
||||||
==错误 :==
|
==错误 :==
|
||||||
==set global max_allowed_packet=1024*1024*16;==
|
==set global max_allowed_packet=1024*1024*16;==
|
||||||
\> 来自 \<[https://blog.csdn.net/lianshaohua/article/details/88380898](https://blog.csdn.net/lianshaohua/article/details/88380898)\>
|
> 来自 <[https://blog.csdn.net/lianshaohua/article/details/88380898](https://blog.csdn.net/lianshaohua/article/details/88380898)>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
1. ==Install the repository RPM:========yum install== ==https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm==
|
1. ==Install the repository RPM:========yum install== ==https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm==
|
||||||
2. ==Install the client packages:========yum install postgresql12==
|
2. ==Install the client packages:========yum install postgresql12==
|
||||||
3. ==Optionally install the server packages:========yum install postgresql12-server==
|
3. ==Optionally install the server packages:========yum install postgresql12-server==
|
||||||
4. ==Optionally initialize the database and enable automatic start:========/usr/pgsql-12/bin/postgresql-12-setup initdb========systemctl enable postgresql-12========systemctl start postgresql-12== \> 来自 \<[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/)\>
|
4. ==Optionally initialize the database and enable automatic start:========/usr/pgsql-12/bin/postgresql-12-setup initdb========systemctl enable postgresql-12========systemctl start postgresql-12== > 来自 <[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/)>
|
||||||
[Service]
|
[Service]
|
||||||
Type=notify
|
Type=notify
|
||||||
|
|
||||||
@@ -15,4 +15,4 @@ Group=postgres
|
|||||||
Environment=PGDATA=/var/lib/pgsql/12/data/
|
Environment=PGDATA=/var/lib/pgsql/12/data/
|
||||||
|
|
||||||
初始化之后,数据文件会存在 /var/lib/pgsql/12/data
|
初始化之后,数据文件会存在 /var/lib/pgsql/12/data
|
||||||
\> 来自 \<[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/)\>
|
> 来自 <[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/)>
|
||||||
@@ -1,3 +1,7 @@
|
|||||||
select `pg_terminate_backend(pid)` from `pg_stat_activity` where `datname`='testdb' and `pid`\<\>`pg_backend_pid();`
|
```sql
|
||||||
|
select `pg_terminate_backend(pid)` from `pg_stat_activity` where `datname`='testdb' and `pid`<>`pg_backend_pid();`
|
||||||
|
```
|
||||||
==上面sql表示的是关闭数据库testdb的活动连接,接下来就可以用==
|
==上面sql表示的是关闭数据库testdb的活动连接,接下来就可以用==
|
||||||
|
```sql
|
||||||
drop database `testdb;`
|
drop database `testdb;`
|
||||||
|
```
|
||||||
1
数据库知识库/POSTGRESQL/systemctl start postgresql-12.service -- 启动服务.md
Executable file
1
数据库知识库/POSTGRESQL/systemctl start postgresql-12.service -- 启动服务.md
Executable file
@@ -0,0 +1 @@
|
|||||||
|
systemctl start postgresql-12.service // 启动服务systemctl stop postgresql-12.service // 关闭服务systemctl restart postgresql-12.service // 重启服务systemctl status postgresql-12.service // 查看状态
|
||||||
@@ -11,5 +11,5 @@
|
|||||||
- ==CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。==
|
- ==CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。==
|
||||||
- ==AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。==
|
- ==AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。==
|
||||||

|

|
||||||
\> 来自 \<[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)\>
|
> 来自 <[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)>
|
||||||
\> 来自 \<[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)\>
|
> 来自 <[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)>
|
||||||
@@ -11,4 +11,4 @@
|
|||||||
==比如现在有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。==
|
==比如现在有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。==
|
||||||
**4、D (Durability) 持久性**
|
**4、D (Durability) 持久性**
|
||||||
==持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。==
|
==持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。==
|
||||||
\> 来自 \<[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)\>
|
> 来自 <[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)>
|
||||||
@@ -1,11 +1,15 @@
|
|||||||
|
```sql
|
||||||
SELECT TOP 10
|
SELECT TOP 10
|
||||||
|
```
|
||||||
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
|
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
|
||||||
execution_count,
|
execution_count,
|
||||||
(SELECT SUBSTRING(text, statement_start_offset/2 + 1,
|
(SELECT SUBSTRING(text, statement_start_offset/2 + 1,
|
||||||
(CASE WHEN statement_end_offset = -1
|
(CASE WHEN statement_end_offset = -1
|
||||||
THEN LEN(CONVERT(nvarchar(max), text)) * 2
|
THEN LEN(CONVERT(nvarchar(max), text)) * 2
|
||||||
ELSE statement_end_offset
|
ELSE statement_end_offset
|
||||||
|
```sql
|
||||||
END - statement_start_offset)/2)
|
END - statement_start_offset)/2)
|
||||||
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
|
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
|
||||||
FROM sys.dm_exec_query_stats
|
FROM sys.dm_exec_query_stats
|
||||||
|
```
|
||||||
ORDER BY [avg_cpu_cost] DESC
|
ORDER BY [avg_cpu_cost] DESC
|
||||||
@@ -3,14 +3,18 @@ DeviceInfo 表需要新增 [HeightDeviation]列
|
|||||||
执行脚本,以及修改对应的ProjectID
|
执行脚本,以及修改对应的ProjectID
|
||||||
其他的
|
其他的
|
||||||
|
|
||||||
|
```sql
|
||||||
USE [HiMonitorDB]
|
USE [HiMonitorDB]
|
||||||
GO
|
GO
|
||||||
|
```
|
||||||
/****** Object: Table [dbo].[DynamicCalculationConfig] Script Date: 2018/7/5 15:04:35 ******/
|
/****** Object: Table [dbo].[DynamicCalculationConfig] Script Date: 2018/7/5 15:04:35 ******/
|
||||||
SET ANSI_NULLS ON
|
SET ANSI_NULLS ON
|
||||||
GO
|
GO
|
||||||
SET QUOTED_IDENTIFIER ON
|
SET QUOTED_IDENTIFIER ON
|
||||||
GO
|
GO
|
||||||
|
```sql
|
||||||
CREATE TABLE [dbo].[DynamicCalculationConfig](
|
CREATE TABLE [dbo].[DynamicCalculationConfig](
|
||||||
|
```
|
||||||
[ID] [int] IDENTITY(1,1) NOT NULL,
|
[ID] [int] IDENTITY(1,1) NOT NULL,
|
||||||
[IsUse] [int] NULL,
|
[IsUse] [int] NULL,
|
||||||
[SolveMode] [int] NULL,
|
[SolveMode] [int] NULL,
|
||||||
@@ -34,7 +38,9 @@ SET QUOTED_IDENTIFIER ON
|
|||||||
GO
|
GO
|
||||||
SET ANSI_PADDING ON
|
SET ANSI_PADDING ON
|
||||||
GO
|
GO
|
||||||
|
```sql
|
||||||
CREATE TABLE [dbo].[RoutineConfig](
|
CREATE TABLE [dbo].[RoutineConfig](
|
||||||
|
```
|
||||||
[ID] [int] IDENTITY(1,1) NOT NULL,
|
[ID] [int] IDENTITY(1,1) NOT NULL,
|
||||||
[RelatedProject] [int] NULL,
|
[RelatedProject] [int] NULL,
|
||||||
[ObsType] [int] NULL,
|
[ObsType] [int] NULL,
|
||||||
@@ -60,7 +66,9 @@ SET ANSI_NULLS ON
|
|||||||
GO
|
GO
|
||||||
SET QUOTED_IDENTIFIER ON
|
SET QUOTED_IDENTIFIER ON
|
||||||
GO
|
GO
|
||||||
|
```sql
|
||||||
CREATE TABLE [dbo].[RTKCalculationConfig](
|
CREATE TABLE [dbo].[RTKCalculationConfig](
|
||||||
|
```
|
||||||
[ID] [int] IDENTITY(1,1) NOT NULL,
|
[ID] [int] IDENTITY(1,1) NOT NULL,
|
||||||
[IsUse] [int] NULL,
|
[IsUse] [int] NULL,
|
||||||
[MaxHorRTK] [float] NULL,
|
[MaxHorRTK] [float] NULL,
|
||||||
@@ -83,7 +91,9 @@ SET ANSI_NULLS ON
|
|||||||
GO
|
GO
|
||||||
SET QUOTED_IDENTIFIER ON
|
SET QUOTED_IDENTIFIER ON
|
||||||
GO
|
GO
|
||||||
|
```sql
|
||||||
CREATE TABLE [dbo].[StaticeCalculationConfig](
|
CREATE TABLE [dbo].[StaticeCalculationConfig](
|
||||||
|
```
|
||||||
[ID] [int] IDENTITY(1,1) NOT NULL,
|
[ID] [int] IDENTITY(1,1) NOT NULL,
|
||||||
[IsUse] [int] NULL,
|
[IsUse] [int] NULL,
|
||||||
[MaxHorSTC] [float] NULL,
|
[MaxHorSTC] [float] NULL,
|
||||||
@@ -102,15 +112,21 @@ CONSTRAINT [PK_StaticeMonitorConfig] PRIMARY KEY CLUSTERED
|
|||||||
GO
|
GO
|
||||||
SET IDENTITY_INSERT [dbo].[DynamicCalculationConfig] ON
|
SET IDENTITY_INSERT [dbo].[DynamicCalculationConfig] ON
|
||||||
|
|
||||||
|
```sql
|
||||||
INSERT [dbo].[DynamicCalculationConfig] ([ID], [IsUse], [SolveMode], [RobustMode], [RatioThrdDYN], [SolvingStrategy], [RelatedProject], [FilterWindowSize], [SolveStoreInterval]) VALUES (1, 0, 0, 0, 3, NULL, 2, 10, 30)
|
INSERT [dbo].[DynamicCalculationConfig] ([ID], [IsUse], [SolveMode], [RobustMode], [RatioThrdDYN], [SolvingStrategy], [RelatedProject], [FilterWindowSize], [SolveStoreInterval]) VALUES (1, 0, 0, 0, 3, NULL, 2, 10, 30)
|
||||||
|
```
|
||||||
SET IDENTITY_INSERT [dbo].[DynamicCalculationConfig] OFF
|
SET IDENTITY_INSERT [dbo].[DynamicCalculationConfig] OFF
|
||||||
SET IDENTITY_INSERT [dbo].[RoutineConfig] ON
|
SET IDENTITY_INSERT [dbo].[RoutineConfig] ON
|
||||||
|
|
||||||
|
```sql
|
||||||
INSERT [dbo].[RoutineConfig] ([ID], [RelatedProject], [ObsType], [ObsFreq], [Intervals], [EleCutOff], [ExcludeSats], [UsedSys], [IsSaveRawData], [SaveRawDataType], [SaveDataInterval]) VALUES (1, 2, 0, 0, 15, 12, NULL, N'0&1&2', 0, 0, 24)
|
INSERT [dbo].[RoutineConfig] ([ID], [RelatedProject], [ObsType], [ObsFreq], [Intervals], [EleCutOff], [ExcludeSats], [UsedSys], [IsSaveRawData], [SaveRawDataType], [SaveDataInterval]) VALUES (1, 2, 0, 0, 15, 12, NULL, N'0&1&2', 0, 0, 24)
|
||||||
|
```
|
||||||
SET IDENTITY_INSERT [dbo].[RoutineConfig] OFF
|
SET IDENTITY_INSERT [dbo].[RoutineConfig] OFF
|
||||||
SET IDENTITY_INSERT [dbo].[RTKCalculationConfig] ON
|
SET IDENTITY_INSERT [dbo].[RTKCalculationConfig] ON
|
||||||
|
|
||||||
|
```sql
|
||||||
INSERT [dbo].[RTKCalculationConfig] ([ID], [IsUse], [MaxHorRTK], [MaxVerRTK], [RatioThrdRTK], [DeforMode], [SolvingStrategy], [RelatedProject], [FilterWindowSize], [SolveStoreInterval]) VALUES (1, 1, 0.02, 0.04, 2.5, 0, 0, 2, 120, 30)
|
INSERT [dbo].[RTKCalculationConfig] ([ID], [IsUse], [MaxHorRTK], [MaxVerRTK], [RatioThrdRTK], [DeforMode], [SolvingStrategy], [RelatedProject], [FilterWindowSize], [SolveStoreInterval]) VALUES (1, 1, 0.02, 0.04, 2.5, 0, 0, 2, 120, 30)
|
||||||
|
```
|
||||||
SET IDENTITY_INSERT [dbo].[RTKCalculationConfig] OFF
|
SET IDENTITY_INSERT [dbo].[RTKCalculationConfig] OFF
|
||||||
SET IDENTITY_INSERT [dbo].[StaticeCalculationConfig] ON INSERT [dbo].[StaticeCalculationConfig] ([ID], [IsUse], [MaxHorSTC], [MaxVerSTC], [RatioThrdSTC], [SolvingStrategy], [SessLengthSTC], [CalcFreqSTC], [RelatedProject]) VALUES (5, 0, 0.02, 0.02, 2.5, NULL, 5, 5, 12)
|
SET IDENTITY_INSERT [dbo].[StaticeCalculationConfig] ON INSERT [dbo].[StaticeCalculationConfig] ([ID], [IsUse], [MaxHorSTC], [MaxVerSTC], [RatioThrdSTC], [SolvingStrategy], [SessLengthSTC], [CalcFreqSTC], [RelatedProject]) VALUES (5, 0, 0.02, 0.02, 2.5, NULL, 5, 5, 12)
|
||||||
SET IDENTITY_INSERT [dbo].[StaticeCalculationConfig] OFF
|
SET IDENTITY_INSERT [dbo].[StaticeCalculationConfig] OFF
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
游标分为静态游标和动态游标,静态游标的数据是固定的,不会因为数据表的改变而改变;动态游标的数据是随着数据表变化而变化的,游标默认是动态游标,通过关键字STATIC设置,OK,上测试数据:
|
游标分为静态游标和动态游标,静态游标的数据是固定的,不会因为数据表的改变而改变;动态游标的数据是随着数据表变化而变化的,游标默认是动态游标,通过关键字STATIC设置,OK,上测试数据:
|
||||||
|
|
||||||
--测试数据
|
--测试数据
|
||||||
|
```sql
|
||||||
if not object_id(N'Tempdb..#T') is null
|
if not object_id(N'Tempdb..#T') is null
|
||||||
drop table #T
|
drop table #T
|
||||||
Go
|
Go
|
||||||
@@ -13,20 +14,27 @@ select 2,N'李四' union all
|
|||||||
select 3,N'王五' union all
|
select 3,N'王五' union all
|
||||||
select 4,N'赵六'
|
select 4,N'赵六'
|
||||||
Go
|
Go
|
||||||
|
```
|
||||||
--测试数据结束
|
--测试数据结束
|
||||||
我们先看静态游标的使用方法:
|
我们先看静态游标的使用方法:
|
||||||
|
|
||||||
|
```sql
|
||||||
DECLARE @id INT , @name NVARCHAR(50) --声明变量,需要读取的数据
|
DECLARE @id INT , @name NVARCHAR(50) --声明变量,需要读取的数据
|
||||||
DECLARE cur CURSOR STATIC --声明静态游标
|
DECLARE cur CURSOR STATIC --声明静态游标
|
||||||
|
```
|
||||||
FOR
|
FOR
|
||||||
|
```sql
|
||||||
SELECT * FROM #T
|
SELECT * FROM #T
|
||||||
OPEN cur --打开游标
|
OPEN cur --打开游标
|
||||||
FETCH NEXT FROM cur INTO @id, @name --取数据
|
FETCH NEXT FROM cur INTO @id, @name --取数据
|
||||||
WHILE ( @@fetch_status = 0 ) --判断是否还有数据
|
WHILE ( @@fetch_status = 0 ) --判断是否还有数据
|
||||||
|
```
|
||||||
BEGIN
|
BEGIN
|
||||||
|
```sql
|
||||||
SELECT '数据: ' + RTRIM(@id) + @name
|
SELECT '数据: ' + RTRIM(@id) + @name
|
||||||
UPDATE #T SET name='测试' WHERE id=4 --测试静态动态用
|
UPDATE #T SET name='测试' WHERE id=4 --测试静态动态用
|
||||||
FETCH NEXT FROM cur INTO @id, @name --这里一定要写取下一条数据
|
FETCH NEXT FROM cur INTO @id, @name --这里一定要写取下一条数据
|
||||||
|
```
|
||||||
END
|
END
|
||||||
CLOSE cur --关闭游标
|
CLOSE cur --关闭游标
|
||||||
DEALLOCATE cur
|
DEALLOCATE cur
|
||||||
@@ -34,17 +42,23 @@ DEALLOCATE cur
|
|||||||
|
|
||||||
我们再来看一下,动态游标,去掉STATIC关键字即可:
|
我们再来看一下,动态游标,去掉STATIC关键字即可:
|
||||||
|
|
||||||
|
```sql
|
||||||
DECLARE @id INT , @name NVARCHAR(50) --声明变量,需要读取的数据
|
DECLARE @id INT , @name NVARCHAR(50) --声明变量,需要读取的数据
|
||||||
DECLARE cur CURSOR --去掉STATIC关键字即可
|
DECLARE cur CURSOR --去掉STATIC关键字即可
|
||||||
|
```
|
||||||
FOR
|
FOR
|
||||||
|
```sql
|
||||||
SELECT * FROM #T
|
SELECT * FROM #T
|
||||||
OPEN cur --打开游标
|
OPEN cur --打开游标
|
||||||
FETCH NEXT FROM cur INTO @id, @name --取数据
|
FETCH NEXT FROM cur INTO @id, @name --取数据
|
||||||
WHILE ( @@fetch_status = 0 ) --判断是否还有数据
|
WHILE ( @@fetch_status = 0 ) --判断是否还有数据
|
||||||
|
```
|
||||||
BEGIN
|
BEGIN
|
||||||
|
```sql
|
||||||
SELECT '数据: ' + RTRIM(@id) + @name
|
SELECT '数据: ' + RTRIM(@id) + @name
|
||||||
UPDATE #T SET name='测试' WHERE id=4 --测试静态动态用
|
UPDATE #T SET name='测试' WHERE id=4 --测试静态动态用
|
||||||
FETCH NEXT FROM cur INTO @id, @name --这里一定要写取下一条数据
|
FETCH NEXT FROM cur INTO @id, @name --这里一定要写取下一条数据
|
||||||
|
```
|
||||||
END
|
END
|
||||||
CLOSE cur --关闭游标
|
CLOSE cur --关闭游标
|
||||||
DEALLOCATE cur
|
DEALLOCATE cur
|
||||||
|
|||||||
@@ -1,13 +1,17 @@
|
|||||||
如果你的数据库还处于挂起状态,请把我下面代码的test改为你的库名,然后执行完,刷新就正常了:
|
如果你的数据库还处于挂起状态,请把我下面代码的test改为你的库名,然后执行完,刷新就正常了:
|
||||||
USE master
|
USE master
|
||||||
GO
|
GO
|
||||||
|
```sql
|
||||||
ALTER DATABASE test SET SINGLE_USER
|
ALTER DATABASE test SET SINGLE_USER
|
||||||
GO
|
GO
|
||||||
ALTER DATABASE test SET EMERGENCY
|
ALTER DATABASE test SET EMERGENCY
|
||||||
GO
|
GO
|
||||||
|
```
|
||||||
DBCC CHECKDB(test,REPAIR_ALLOW_DATA_LOSS)
|
DBCC CHECKDB(test,REPAIR_ALLOW_DATA_LOSS)
|
||||||
go
|
go
|
||||||
|
```sql
|
||||||
ALTER DATABASE test SET ONLINE
|
ALTER DATABASE test SET ONLINE
|
||||||
GO
|
GO
|
||||||
ALTER DATABASE test SET MULTI_USER
|
ALTER DATABASE test SET MULTI_USER
|
||||||
GO
|
GO
|
||||||
|
```
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
一、定义变量
|
一、定义变量
|
||||||
--简单赋值
|
--简单赋值
|
||||||
|
```sql
|
||||||
declare @a int
|
declare @a int
|
||||||
set @a=5
|
set @a=5
|
||||||
print @a --使用select语句赋值
|
print @a --使用select语句赋值
|
||||||
@@ -13,10 +14,13 @@ declare @user3 nvarchar(50)
|
|||||||
update ST_User set @user3 = Name where ID=1
|
update ST_User set @user3 = Name where ID=1
|
||||||
print @user3
|
print @user3
|
||||||
|
|
||||||
|
```
|
||||||
二、表、临时表、表变量
|
二、表、临时表、表变量
|
||||||
|
|
||||||
--创建临时表1
|
--创建临时表1
|
||||||
|
```sql
|
||||||
create table #DU_User1
|
create table #DU_User1
|
||||||
|
```
|
||||||
(
|
(
|
||||||
[ID] [int] NOT NULL,
|
[ID] [int] NOT NULL,
|
||||||
[Oid] [int] NOT NULL,
|
[Oid] [int] NOT NULL,
|
||||||
@@ -27,12 +31,14 @@ create table #DU_User1
|
|||||||
[State] [nvarchar](8) NOT NULL
|
[State] [nvarchar](8) NOT NULL
|
||||||
);
|
);
|
||||||
--向临时表1插入一条记录
|
--向临时表1插入一条记录
|
||||||
|
```sql
|
||||||
insert into #DU_User1 (ID,Oid,[Login],Rtx,Name,[Password],State) values (100,2,'LS','0000','临时','321','特殊'); --从ST_User查询数据,填充至新生成的临时表
|
insert into #DU_User1 (ID,Oid,[Login],Rtx,Name,[Password],State) values (100,2,'LS','0000','临时','321','特殊'); --从ST_User查询数据,填充至新生成的临时表
|
||||||
select * into #DU_User2 from ST_User where ID\<8 --查询并联合两临时表
|
select * into #DU_User2 from ST_User where ID<8 --查询并联合两临时表
|
||||||
select * from #DU_User2 where ID\<3 union select * from #DU_User1 --删除两临时表
|
select * from #DU_User2 where ID<3 union select * from #DU_User1 --删除两临时表
|
||||||
drop table #DU_User1
|
drop table #DU_User1
|
||||||
drop table #DU_User2 --创建临时表
|
drop table #DU_User2 --创建临时表
|
||||||
CREATE TABLE #t
|
CREATE TABLE #t
|
||||||
|
```
|
||||||
(
|
(
|
||||||
[ID] [int] NOT NULL,
|
[ID] [int] NOT NULL,
|
||||||
[Oid] [int] NOT NULL,
|
[Oid] [int] NOT NULL,
|
||||||
@@ -42,37 +48,53 @@ CREATE TABLE #t
|
|||||||
[Password] [nvarchar](max) NULL,
|
[Password] [nvarchar](max) NULL,
|
||||||
[State] [nvarchar](8) NOT NULL,
|
[State] [nvarchar](8) NOT NULL,
|
||||||
) --将查询结果集(多条数据)插入临时表
|
) --将查询结果集(多条数据)插入临时表
|
||||||
|
```sql
|
||||||
insert into #t select * from ST_User
|
insert into #t select * from ST_User
|
||||||
|
```
|
||||||
--不能这样插入
|
--不能这样插入
|
||||||
--select * into #t from dbo.ST_User --添加一列,为int型自增长子段
|
--select * into #t from dbo.ST_User --添加一列,为int型自增长子段
|
||||||
|
```sql
|
||||||
alter table #t add [myid] int NOT NULL IDENTITY(1,1)
|
alter table #t add [myid] int NOT NULL IDENTITY(1,1)
|
||||||
|
```
|
||||||
--添加一列,默认填充全球唯一标识
|
--添加一列,默认填充全球唯一标识
|
||||||
|
```sql
|
||||||
alter table #t add [myid1] uniqueidentifier NOT NULL default(newid()) select * from #t
|
alter table #t add [myid1] uniqueidentifier NOT NULL default(newid()) select * from #t
|
||||||
drop table #t
|
drop table #t
|
||||||
|
```
|
||||||
--给查询结果集增加自增长列 --无主键时:
|
--给查询结果集增加自增长列 --无主键时:
|
||||||
|
```sql
|
||||||
select IDENTITY(int,1,1)as ID, Name,[Login],[Password] into #t from ST_User
|
select IDENTITY(int,1,1)as ID, Name,[Login],[Password] into #t from ST_User
|
||||||
select * from #t --有主键时:
|
select * from #t --有主键时:
|
||||||
select (select SUM(1) from ST_User where ID\<= a.ID) as myID,* from ST_User a order by myID
|
select (select SUM(1) from ST_User where ID<= a.ID) as myID,* from ST_User a order by myID
|
||||||
|
```
|
||||||
--定义表变量
|
--定义表变量
|
||||||
|
```sql
|
||||||
declare @t table
|
declare @t table
|
||||||
|
```
|
||||||
(
|
(
|
||||||
id int not null,
|
id int not null,
|
||||||
msg nvarchar(50) null
|
msg nvarchar(50) null
|
||||||
)
|
)
|
||||||
|
```sql
|
||||||
insert into @t values(1,'1')
|
insert into @t values(1,'1')
|
||||||
insert into @t values(2,'2')
|
insert into @t values(2,'2')
|
||||||
select * from @t
|
select * from @t
|
||||||
|
```
|
||||||
三、循环
|
三、循环
|
||||||
|
|
||||||
--while循环计算1到100的和
|
--while循环计算1到100的和
|
||||||
|
```sql
|
||||||
declare @a int
|
declare @a int
|
||||||
declare @sum int
|
declare @sum int
|
||||||
set @a=1
|
set @a=1
|
||||||
set @sum=0
|
set @sum=0
|
||||||
while @a\<=100
|
while @a<=100
|
||||||
|
```
|
||||||
begin
|
begin
|
||||||
|
```sql
|
||||||
set @sum+=@a
|
set @sum+=@a
|
||||||
set @a+=1
|
set @a+=1
|
||||||
|
```
|
||||||
end
|
end
|
||||||
print @sum
|
print @sum
|
||||||
四、条件语句
|
四、条件语句
|
||||||
@@ -85,11 +107,13 @@ end
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
print '错'
|
print '错'
|
||||||
|
```sql
|
||||||
end --when then条件分支
|
end --when then条件分支
|
||||||
declare @today int
|
declare @today int
|
||||||
declare @week nvarchar(3)
|
declare @week nvarchar(3)
|
||||||
set @today=3
|
set @today=3
|
||||||
set @week=case
|
set @week=case
|
||||||
|
```
|
||||||
when @today=1 then '星期一'
|
when @today=1 then '星期一'
|
||||||
when @today=2 then '星期二'
|
when @today=2 then '星期二'
|
||||||
when @today=3 then '星期三'
|
when @today=3 then '星期三'
|
||||||
@@ -99,21 +123,29 @@ when @today=6 then '星期六'
|
|||||||
when @today=7 then '星期日'
|
when @today=7 then '星期日'
|
||||||
else '值错误'
|
else '值错误'
|
||||||
end
|
end
|
||||||
|
```sql
|
||||||
print @week
|
print @week
|
||||||
|
|
||||||
|
```
|
||||||
五、游标
|
五、游标
|
||||||
|
|
||||||
|
```sql
|
||||||
declare @ID int
|
declare @ID int
|
||||||
declare @Oid int
|
declare @Oid int
|
||||||
declare @Login varchar(50) --定义一个游标
|
declare @Login varchar(50) --定义一个游标
|
||||||
declare user_cur cursor for select ID,Oid,[Login] from ST_User
|
declare user_cur cursor for select ID,Oid,[Login] from ST_User
|
||||||
|
```
|
||||||
--打开游标
|
--打开游标
|
||||||
|
```sql
|
||||||
open user_cur
|
open user_cur
|
||||||
while @@fetch_status=0
|
while @@fetch_status=0
|
||||||
|
```
|
||||||
begin
|
begin
|
||||||
--读取游标
|
--读取游标
|
||||||
|
```sql
|
||||||
fetch next from user_cur into @ID,@Oid,@Login
|
fetch next from user_cur into @ID,@Oid,@Login
|
||||||
print @ID
|
print @ID
|
||||||
|
```
|
||||||
--print @Login
|
--print @Login
|
||||||
end
|
end
|
||||||
close user_cur
|
close user_cur
|
||||||
@@ -129,33 +161,46 @@ deallocate user_cur
|
|||||||
存放进行delete 和update操作前的数据
|
存放进行delete 和update操作前的数据
|
||||||
|
|
||||||
--创建触发器
|
--创建触发器
|
||||||
|
```sql
|
||||||
Create trigger User_OnUpdate
|
Create trigger User_OnUpdate
|
||||||
|
```
|
||||||
On ST_User
|
On ST_User
|
||||||
for Update
|
for Update
|
||||||
As
|
As
|
||||||
|
```sql
|
||||||
declare @msg nvarchar(50)
|
declare @msg nvarchar(50)
|
||||||
|
```
|
||||||
--@msg记录修改情况
|
--@msg记录修改情况
|
||||||
|
```sql
|
||||||
select @msg = N'姓名从“' + Deleted.Name + N'”修改为“' + Inserted.Name + '”' from Inserted,Deleted
|
select @msg = N'姓名从“' + Deleted.Name + N'”修改为“' + Inserted.Name + '”' from Inserted,Deleted
|
||||||
|
```
|
||||||
--插入日志表
|
--插入日志表
|
||||||
|
```sql
|
||||||
insert into [LOG](MSG)values(@msg) --删除触发器
|
insert into [LOG](MSG)values(@msg) --删除触发器
|
||||||
drop trigger User_OnUpdate
|
drop trigger User_OnUpdate
|
||||||
|
```
|
||||||
七、存储过程
|
七、存储过程
|
||||||
|
|
||||||
--创建带output参数的存储过程
|
--创建带output参数的存储过程
|
||||||
|
```sql
|
||||||
CREATE PROCEDURE PR_Sum
|
CREATE PROCEDURE PR_Sum
|
||||||
|
```
|
||||||
@a int,
|
@a int,
|
||||||
@b int,
|
@b int,
|
||||||
@sum int output
|
@sum int output
|
||||||
AS
|
AS
|
||||||
BEGIN
|
BEGIN
|
||||||
|
```sql
|
||||||
set @sum=@a+@b
|
set @sum=@a+@b
|
||||||
END --创建Return返回值存储过程
|
END --创建Return返回值存储过程
|
||||||
CREATE PROCEDURE PR_Sum2
|
CREATE PROCEDURE PR_Sum2
|
||||||
|
```
|
||||||
@a int,
|
@a int,
|
||||||
@b int
|
@b int
|
||||||
AS
|
AS
|
||||||
BEGIN
|
BEGIN
|
||||||
Return @a+@b
|
Return @a+@b
|
||||||
|
```sql
|
||||||
END --执行存储过程获取output型返回值
|
END --执行存储过程获取output型返回值
|
||||||
declare @mysum int
|
declare @mysum int
|
||||||
execute PR_Sum 1,2,@mysum output
|
execute PR_Sum 1,2,@mysum output
|
||||||
@@ -163,6 +208,7 @@ print @mysum --执行存储过程获取Return型返回值
|
|||||||
declare @mysum2 int
|
declare @mysum2 int
|
||||||
execute @mysum2= PR_Sum2 1,2
|
execute @mysum2= PR_Sum2 1,2
|
||||||
print @mysum2
|
print @mysum2
|
||||||
|
```
|
||||||
八、自定义函数
|
八、自定义函数
|
||||||
|
|
||||||
函数的分类:
|
函数的分类:
|
||||||
@@ -178,7 +224,9 @@ print @mysum2
|
|||||||
3)系统函数
|
3)系统函数
|
||||||
|
|
||||||
--新建标量值函数
|
--新建标量值函数
|
||||||
|
```sql
|
||||||
create function FUNC_Sum1
|
create function FUNC_Sum1
|
||||||
|
```
|
||||||
(
|
(
|
||||||
@a int,
|
@a int,
|
||||||
@b int
|
@b int
|
||||||
@@ -187,15 +235,19 @@ returns int
|
|||||||
as
|
as
|
||||||
begin
|
begin
|
||||||
return @a+@b
|
return @a+@b
|
||||||
|
```sql
|
||||||
end --新建内联表值函数
|
end --新建内联表值函数
|
||||||
create function FUNC_UserTab_1
|
create function FUNC_UserTab_1
|
||||||
|
```
|
||||||
(
|
(
|
||||||
@myId int
|
@myId int
|
||||||
)
|
)
|
||||||
returns table
|
returns table
|
||||||
as
|
as
|
||||||
return (select * from ST_User where ID\<@myId) --新建多语句表值函数
|
return (select * from ST_User where ID<@myId) --新建多语句表值函数
|
||||||
|
```sql
|
||||||
create function FUNC_UserTab_2
|
create function FUNC_UserTab_2
|
||||||
|
```
|
||||||
(
|
(
|
||||||
@myId int
|
@myId int
|
||||||
)
|
)
|
||||||
@@ -211,15 +263,21 @@ returns @t table
|
|||||||
)
|
)
|
||||||
as
|
as
|
||||||
begin
|
begin
|
||||||
insert into @t select * from ST_User where ID\<@myId
|
```sql
|
||||||
|
insert into @t select * from ST_User where ID<@myId
|
||||||
|
```
|
||||||
return
|
return
|
||||||
|
```sql
|
||||||
end --调用表值函数
|
end --调用表值函数
|
||||||
select * from dbo.FUNC_UserTab_1(15)
|
select * from dbo.FUNC_UserTab_1(15)
|
||||||
|
```
|
||||||
--调用标量值函数
|
--调用标量值函数
|
||||||
|
```sql
|
||||||
declare @s int
|
declare @s int
|
||||||
set @s=dbo.FUNC_Sum1(100,50)
|
set @s=dbo.FUNC_Sum1(100,50)
|
||||||
print @s --删除标量值函数
|
print @s --删除标量值函数
|
||||||
drop function FUNC_Sum1
|
drop function FUNC_Sum1
|
||||||
|
```
|
||||||
谈谈自定义函数与存储过程的区别:
|
谈谈自定义函数与存储过程的区别:
|
||||||
|
|
||||||
一、自定义函数:
|
一、自定义函数:
|
||||||
|
|||||||
@@ -1,14 +1,18 @@
|
|||||||
/****** Script for SelectTopNRows command from SSMS ******/
|
/****** Script for SelectTopNRows command from SSMS ******/
|
||||||
|
|
||||||
|
```sql
|
||||||
declare @bx float
|
declare @bx float
|
||||||
declare @by float
|
declare @by float
|
||||||
declare @bh float
|
declare @bh float
|
||||||
select @bx=a.BaseX,@by=a.BaseY,@bh=a.BaseH from DataSyncPushConnector.dbo.DataSyncStation a
|
select @bx=a.BaseX,@by=a.BaseY,@bh=a.BaseH from DataSyncPushConnector.dbo.DataSyncStation a
|
||||||
join [HiMonitorDB].[dbo].DeviceInfo b
|
join [HiMonitorDB].[dbo].DeviceInfo b
|
||||||
|
```
|
||||||
on a.DeviceName=b.DeviceName
|
on a.DeviceName=b.DeviceName
|
||||||
|
```sql
|
||||||
where a.DeviceName='WZ0504'
|
where a.DeviceName='WZ0504'
|
||||||
|
|
||||||
SELECT [GPSIndex]
|
SELECT [GPSIndex]
|
||||||
|
```
|
||||||
,[aDatetime]
|
,[aDatetime]
|
||||||
,[X]
|
,[X]
|
||||||
,[Y]
|
,[Y]
|
||||||
@@ -16,5 +20,7 @@ SELECT [GPSIndex]
|
|||||||
,([X]-@bx)*1000 as dx
|
,([X]-@bx)*1000 as dx
|
||||||
,([Y]-@by)*1000 as dy
|
,([Y]-@by)*1000 as dy
|
||||||
,([Height]-@bh)*1000 as dh
|
,([Height]-@bh)*1000 as dh
|
||||||
FROM [HiMonitorDB].[dbo].[wz0504_stc] a where aDatetime \>'2020-04-1'
|
```sql
|
||||||
|
FROM [HiMonitorDB].[dbo].[wz0504_stc] a where aDatetime >'2020-04-1'
|
||||||
|
```
|
||||||
order by aDatetime desc
|
order by aDatetime desc
|
||||||
@@ -1,6 +1,12 @@
|
|||||||
|
```sql
|
||||||
select a.DeviceName,b.ProjectID,a.id as DeviceId,a.MonTypeID,b.StationCode, b.Latitude as B ,b.Longitude as L,c.ConvertXValue as OriginX,c.ConvertYValue as OriginY,c.ConvertZValue as OriginZ from safeMonitorMgr.dbo.Mgr_Device as a
|
select a.DeviceName,b.ProjectID,a.id as DeviceId,a.MonTypeID,b.StationCode, b.Latitude as B ,b.Longitude as L,c.ConvertXValue as OriginX,c.ConvertYValue as OriginY,c.ConvertZValue as OriginZ from safeMonitorMgr.dbo.Mgr_Device as a
|
||||||
right join safeMonitorMgr.dbo.station as b
|
right join safeMonitorMgr.dbo.station as b
|
||||||
|
```
|
||||||
on a.StationID=b.Id
|
on a.StationID=b.Id
|
||||||
|
```sql
|
||||||
right join safeMonitorMgr.dbo.HimonitorSyncConfig as c
|
right join safeMonitorMgr.dbo.HimonitorSyncConfig as c
|
||||||
|
```
|
||||||
on c.DeviceID=a.id
|
on c.DeviceID=a.id
|
||||||
|
```sql
|
||||||
where b.ProjectID =84 or b.ProjectID=85
|
where b.ProjectID =84 or b.ProjectID=85
|
||||||
|
```
|
||||||
@@ -1,7 +1,10 @@
|
|||||||
|
```sql
|
||||||
declare @dt datetime --时间
|
declare @dt datetime --时间
|
||||||
declare @gpsindex numeric(18,2) --GPSIndex
|
declare @gpsindex numeric(18,2) --GPSIndex
|
||||||
declare @rand float --随机数
|
declare @rand float --随机数
|
||||||
|
```
|
||||||
--declare @GPSINDEX1 bigint
|
--declare @GPSINDEX1 bigint
|
||||||
|
```sql
|
||||||
declare @adatetime1 datetime
|
declare @adatetime1 datetime
|
||||||
declare @endDate datetime; --结束时间
|
declare @endDate datetime; --结束时间
|
||||||
declare @X1 float
|
declare @X1 float
|
||||||
@@ -20,3 +23,4 @@ SET @Y1 = 537751.2022376+ @DY1
|
|||||||
SET @H1 = 888.1181+ @DH1
|
SET @H1 = 888.1181+ @DH1
|
||||||
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
|
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
|
||||||
insert into HiMonitorDb.[dbo].plq_4_STC([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
|
insert into HiMonitorDb.[dbo].plq_4_STC([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
|
||||||
|
```
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
begin tran
|
begin tran
|
||||||
|
|
||||||
|
```sql
|
||||||
select distinct * into #temp from DataSyncStationSX
|
select distinct * into #temp from DataSyncStationSX
|
||||||
delete DataSyncStationSX
|
delete DataSyncStationSX
|
||||||
go
|
go
|
||||||
@@ -8,6 +9,7 @@ go
|
|||||||
drop table #temp
|
drop table #temp
|
||||||
|
|
||||||
select * from DataSyncStationSX
|
select * from DataSyncStationSX
|
||||||
|
```
|
||||||
order by sid
|
order by sid
|
||||||
|
|
||||||
commit
|
commit
|
||||||
103
数据库知识库/工具脚本/合肥董铺水库中间数据.md
Executable file
103
数据库知识库/工具脚本/合肥董铺水库中间数据.md
Executable file
@@ -0,0 +1,103 @@
|
|||||||
|
```sql
|
||||||
|
USE [ZHDMTProj]
|
||||||
|
GO
|
||||||
|
|
||||||
|
```
|
||||||
|
/****** Object: StoredProcedure [dbo].[sp_ZHDMTProjProcedure20190615] Script Date: 2019/6/14 14:28:33 ******/
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE proc [dbo].[sp_ZHDMTProjProcedure20190615]
|
||||||
|
```
|
||||||
|
(
|
||||||
|
@stationName nvarchar(500),
|
||||||
|
@dt datetime,
|
||||||
|
@endDate datetime
|
||||||
|
)
|
||||||
|
as --declare @dt datetime --时间
|
||||||
|
```sql
|
||||||
|
declare @gpsindex numeric(18,2) --GPSIndex
|
||||||
|
declare @rand float --随机数
|
||||||
|
declare @count int --计数
|
||||||
|
```
|
||||||
|
--declare @GPSINDEX1 bigint
|
||||||
|
```sql
|
||||||
|
declare @adatetime1 datetime
|
||||||
|
```
|
||||||
|
--declare @endDate datetime; --结束时间
|
||||||
|
```sql
|
||||||
|
declare @X1 float
|
||||||
|
declare @Y1 float
|
||||||
|
declare @H1 float
|
||||||
|
declare @DX1 float
|
||||||
|
declare @DY1 float
|
||||||
|
declare @DH1 float
|
||||||
|
declare @DX0 float
|
||||||
|
declare @DY0 float
|
||||||
|
declare @DH0 float
|
||||||
|
declare @X0 float
|
||||||
|
declare @Y0 float
|
||||||
|
declare @H0 float
|
||||||
|
declare @SELECT_SQL1 nvarchar(500)
|
||||||
|
declare @INSERT_SQL1 nvarchar(500)
|
||||||
|
```
|
||||||
|
吴 卓山 于 2019-06-14 14:28 修改
|
||||||
|
--set @dt = '2018-05-22 09:08:00.000';
|
||||||
|
--set @endDate= '2018-12-13 11:19:00.000';
|
||||||
|
--select @X1 = X,@Y1 = Y,@H1 = Height,@DX1=dltaX,@DY1=dltaY,@DH1=dltaH from MYB1_RTK where aDatetime = @dt
|
||||||
|
|
||||||
|
```sql
|
||||||
|
SELECT @X0 =[Sx] , @Y0=[Sy] , @H0 =[Sh] --去station表拿基准
|
||||||
|
FROM [ZHDMTProj].[dbo].[station] where sName=@stationName
|
||||||
|
|
||||||
|
|
||||||
|
SET @SELECT_SQL1='SELECT top 1 @DX0=dltaX , @DY0=dltaY , @DH0 =dltaH
|
||||||
|
FROM [ZHDMTProj].[dbo].'+ @stationName+' order by aDatetime desc';
|
||||||
|
EXEC sp_executesql @SELECT_SQL1, N'@DX0 float out,@DY0 float out,@DH0 float out,@stationName nvarchar(500)',@DX0 out,@DY0 out,@DH0 out,@stationName
|
||||||
|
|
||||||
|
```
|
||||||
|
--求出基准坐标
|
||||||
|
--set @X0=@X1-@DX1
|
||||||
|
--set @Y0=@Y1-@DY1
|
||||||
|
--set @H0=@H1-@DH1
|
||||||
|
```sql
|
||||||
|
select @X0,@Y0,@H0
|
||||||
|
```
|
||||||
|
while(@dt < @endDate) begin
|
||||||
|
```sql
|
||||||
|
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
|
||||||
|
SET @DX1 = @DX0+(rand()*-2 + 1.2)
|
||||||
|
SET @DY1 =@DY0+ (rand()*-2 +1.2)
|
||||||
|
SET @DH1 =@DH0+(rand()*-2 + 1.2)
|
||||||
|
SET @X1 = @X0+ @DX1/1000
|
||||||
|
SET @Y1 = @Y0+ @DY1/1000
|
||||||
|
SET @H1 = @H0+ @DH1/1000
|
||||||
|
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
|
||||||
|
BEGIN TRY SET @INSERT_SQL1=' insert into [ZHDMTProj].[dbo].'+ @stationName+'
|
||||||
|
```
|
||||||
|
([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])
|
||||||
|
VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)'
|
||||||
|
|
||||||
|
```sql
|
||||||
|
EXEC sp_executesql @INSERT_SQL1,
|
||||||
|
```
|
||||||
|
N'@gpsindex bigint,@adatetime1 datetime,@X1 float,@Y1 float,@H1 float,@DX1 float,@DY1 float,@DH1 float'
|
||||||
|
,@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1
|
||||||
|
|
||||||
|
--insert into [ZHDMTProj].[dbo].LY03([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1) END TRY
|
||||||
|
BEGIN
|
||||||
|
CATCH END CATCH
|
||||||
|
--****************
|
||||||
|
```sql
|
||||||
|
set @count = @count + 1
|
||||||
|
set @dt = DATEADD(HOUR,1,@dt) --每次递增5min
|
||||||
|
```
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
@@ -1,8 +1,11 @@
|
|||||||
|
```sql
|
||||||
declare @dt datetime --时间
|
declare @dt datetime --时间
|
||||||
declare @gpsindex numeric(18,2) --GPSIndex
|
declare @gpsindex numeric(18,2) --GPSIndex
|
||||||
declare @rand float --随机数
|
declare @rand float --随机数
|
||||||
declare @count int --计数
|
declare @count int --计数
|
||||||
|
```
|
||||||
--declare @GPSINDEX1 bigint
|
--declare @GPSINDEX1 bigint
|
||||||
|
```sql
|
||||||
declare @adatetime1 datetime
|
declare @adatetime1 datetime
|
||||||
declare @endDate datetime; --结束时间
|
declare @endDate datetime; --结束时间
|
||||||
declare @X1 float
|
declare @X1 float
|
||||||
@@ -17,14 +20,18 @@ declare @H0 float
|
|||||||
|
|
||||||
set @dt = '2020-1-17 12:30:00.000';
|
set @dt = '2020-1-17 12:30:00.000';
|
||||||
set @endDate= '2020-5-18 18:00:00.000';
|
set @endDate= '2020-5-18 18:00:00.000';
|
||||||
select top 1 @X1 = X,@Y1 = Y,@H1 = Height,@DX1=dltaX,@DY1=dltaY,@DH1=dltaH from DC_GB09_STC where aDatetime \< @dt order by aDatetime desc
|
select top 1 @X1 = X,@Y1 = Y,@H1 = Height,@DX1=dltaX,@DY1=dltaY,@DH1=dltaH from DC_GB09_STC where aDatetime < @dt order by aDatetime desc
|
||||||
|
```
|
||||||
--求出基准坐标
|
--求出基准坐标
|
||||||
|
```sql
|
||||||
set @X0=@X1-@DX1
|
set @X0=@X1-@DX1
|
||||||
set @Y0=@Y1-@DY1
|
set @Y0=@Y1-@DY1
|
||||||
set @H0=@H1-@DH1
|
set @H0=@H1-@DH1
|
||||||
select @X0,@Y0,@H0
|
select @X0,@Y0,@H0
|
||||||
while(@dt \< @endDate) begin
|
```
|
||||||
|
while(@dt < @endDate) begin
|
||||||
|
|
||||||
|
```sql
|
||||||
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
|
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
|
||||||
SET @DX1 = RAND()*8-8/2;
|
SET @DX1 = RAND()*8-8/2;
|
||||||
SET @DY1 = RAND()*8-8/2;
|
SET @DY1 = RAND()*8-8/2;
|
||||||
@@ -35,8 +42,11 @@ SET @H1 = @H1+ @DH1/1000
|
|||||||
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
|
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
|
||||||
BEGIN TRY insert into DC_GB09_STC([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
|
BEGIN TRY insert into DC_GB09_STC([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
|
||||||
END TRY BEGIN
|
END TRY BEGIN
|
||||||
|
```
|
||||||
CATCH END CATCH
|
CATCH END CATCH
|
||||||
--****************
|
--****************
|
||||||
|
```sql
|
||||||
set @count = @count + 1
|
set @count = @count + 1
|
||||||
set @dt = DATEADD(MINUTE,30,@dt) --每次递增5min
|
set @dt = DATEADD(MINUTE,30,@dt) --每次递增5min
|
||||||
|
```
|
||||||
end
|
end
|
||||||
@@ -1,39 +1,55 @@
|
|||||||
--创建临时表
|
--创建临时表
|
||||||
|
```sql
|
||||||
create table #Man(
|
create table #Man(
|
||||||
|
```
|
||||||
id int identity(1,1),
|
id int identity(1,1),
|
||||||
tbName nvarchar(50)
|
tbName nvarchar(50)
|
||||||
) --往临时表插入数据
|
) --往临时表插入数据
|
||||||
|
```sql
|
||||||
insert into #Man
|
insert into #Man
|
||||||
select name from sys.tables
|
select name from sys.tables
|
||||||
where create_date\<='2018-03-10 15:36:35.687' and name not in ('DeviceNetState','EphInfo','FilterStatistic','UserInfo','AlmInfo')
|
where create_date<='2018-03-10 15:36:35.687' and name not in ('DeviceNetState','EphInfo','FilterStatistic','UserInfo','AlmInfo')
|
||||||
|
```
|
||||||
order by create_date desc
|
order by create_date desc
|
||||||
|
|
||||||
--确认
|
--确认
|
||||||
|
```sql
|
||||||
select * from #Man
|
select * from #Man
|
||||||
|
|
||||||
|
```
|
||||||
commit
|
commit
|
||||||
rollback
|
rollback
|
||||||
begin tran
|
begin tran
|
||||||
|
|
||||||
|
|
||||||
--定义循环变量
|
--定义循环变量
|
||||||
|
```sql
|
||||||
declare @i int
|
declare @i int
|
||||||
set @i = 1
|
set @i = 1
|
||||||
declare @count int
|
declare @count int
|
||||||
select @count = count(*) from #Man
|
select @count = count(*) from #Man
|
||||||
|
|
||||||
|
```
|
||||||
--print @count
|
--print @count
|
||||||
|
|
||||||
|
```sql
|
||||||
declare @str nvarchar(500)
|
declare @str nvarchar(500)
|
||||||
declare @tb nvarchar(50)
|
declare @tb nvarchar(50)
|
||||||
|
|
||||||
while(@i \<= @count) begin
|
```
|
||||||
|
while(@i <= @count) begin
|
||||||
|
|
||||||
|
```sql
|
||||||
select @tb = isnull(tbName, '') from #Man where id = @i
|
select @tb = isnull(tbName, '') from #Man where id = @i
|
||||||
|
```
|
||||||
--循环执行语句
|
--循环执行语句
|
||||||
|
```sql
|
||||||
set @str = 'drop table [' + @tb+ ']'
|
set @str = 'drop table [' + @tb+ ']'
|
||||||
|
```
|
||||||
exec(@str)
|
exec(@str)
|
||||||
|
|
||||||
|
```sql
|
||||||
set @str = ''
|
set @str = ''
|
||||||
set @i = @i + 1
|
set @i = @i + 1
|
||||||
|
```
|
||||||
end
|
end
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
--
|
--
|
||||||
|
```sql
|
||||||
declare @BeginDate datetime
|
declare @BeginDate datetime
|
||||||
declare @EndDate datetime
|
declare @EndDate datetime
|
||||||
|
|
||||||
@@ -12,14 +13,21 @@ set @EndDate = '2018-08-27 18:59:59.997'
|
|||||||
set @water1 = 2.16
|
set @water1 = 2.16
|
||||||
set @water2 = 1.07
|
set @water2 = 1.07
|
||||||
|
|
||||||
while(@BeginDate \< @EndDate) begin
|
```
|
||||||
|
while(@BeginDate < @EndDate) begin
|
||||||
|
```sql
|
||||||
set @gpsIndex =convert(nvarchar(50),convert(bigint, datediff(ss, '1970-01-01 00:00:00', @BeginDate))*1000 + datepart(ms,@BeginDate))
|
set @gpsIndex =convert(nvarchar(50),convert(bigint, datediff(ss, '1970-01-01 00:00:00', @BeginDate))*1000 + datepart(ms,@BeginDate))
|
||||||
|
|
||||||
insert into [ZHDMTProj].[dbo].[库水位1] ([GPSIndex],[aDatetime],[X])
|
insert into [ZHDMTProj].[dbo].[库水位1] ([GPSIndex],[aDatetime],[X])
|
||||||
|
```
|
||||||
values(@gpsIndex, @BeginDate, @water1)
|
values(@gpsIndex, @BeginDate, @water1)
|
||||||
|
```sql
|
||||||
insert into [ZHDMTProj].[dbo].[库水位2] ([GPSIndex],[aDatetime],[X])
|
insert into [ZHDMTProj].[dbo].[库水位2] ([GPSIndex],[aDatetime],[X])
|
||||||
|
```
|
||||||
values(@gpsIndex, @BeginDate, @water2)
|
values(@gpsIndex, @BeginDate, @water2)
|
||||||
|
|
||||||
--
|
--
|
||||||
|
```sql
|
||||||
set @BeginDate=DATEADD(MINUTE,1,@BeginDate)
|
set @BeginDate=DATEADD(MINUTE,1,@BeginDate)
|
||||||
|
```
|
||||||
end
|
end
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
```sql
|
||||||
declare @x numeric(18,2) --X
|
declare @x numeric(18,2) --X
|
||||||
declare @dt datetime --时间
|
declare @dt datetime --时间
|
||||||
declare @gpsindex numeric(18,2) --GPSIndex
|
declare @gpsindex numeric(18,2) --GPSIndex
|
||||||
@@ -8,13 +9,18 @@ set @x = 0
|
|||||||
set @count = 1
|
set @count = 1
|
||||||
set @dt = '2018-07-02 12:00:00'
|
set @dt = '2018-07-02 12:00:00'
|
||||||
|
|
||||||
while(@dt \< getdate()) begin
|
```
|
||||||
|
while(@dt < getdate()) begin
|
||||||
|
|
||||||
|
```sql
|
||||||
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
|
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
|
||||||
|
|
||||||
|
|
||||||
insert into [ZHDMTProj].[dbo].[Flowmeter01]([GPSIndex],[aDatetime],[X]) values(@gpsindex, @dt, @x) --目标表
|
insert into [ZHDMTProj].[dbo].[Flowmeter01]([GPSIndex],[aDatetime],[X]) values(@gpsindex, @dt, @x) --目标表
|
||||||
|
```
|
||||||
--****************
|
--****************
|
||||||
|
```sql
|
||||||
set @count = @count + 1
|
set @count = @count + 1
|
||||||
set @dt = DATEADD(ss,15,@dt) --每次递增30秒
|
set @dt = DATEADD(ss,15,@dt) --每次递增30秒
|
||||||
|
```
|
||||||
end
|
end
|
||||||
@@ -1,22 +1,34 @@
|
|||||||
|
```sql
|
||||||
use safeMonitorApp
|
use safeMonitorApp
|
||||||
|
```
|
||||||
--声明一个变量
|
--声明一个变量
|
||||||
|
```sql
|
||||||
declare @tbname as nvarchar(100);
|
declare @tbname as nvarchar(100);
|
||||||
|
```
|
||||||
--声明一个游标用来遍历查询到的结果
|
--声明一个游标用来遍历查询到的结果
|
||||||
|
```sql
|
||||||
declare C_userID CURSOR for
|
declare C_userID CURSOR for
|
||||||
select distinct TABLE_NAME from information_schema.COLUMNS
|
select distinct TABLE_NAME from information_schema.COLUMNS
|
||||||
where TABLE_NAME like '%_App' --or TABLE_NAME like '%_App_'
|
where TABLE_NAME like '%_App' --or TABLE_NAME like '%_App_'
|
||||||
|
```
|
||||||
--打开游标
|
--打开游标
|
||||||
|
```sql
|
||||||
open C_userID;
|
open C_userID;
|
||||||
|
```
|
||||||
--获取游标指向的数据
|
--获取游标指向的数据
|
||||||
|
```sql
|
||||||
fetch next from C_userID into @tbname;
|
fetch next from C_userID into @tbname;
|
||||||
while @@FETCH_STATUS = 0
|
while @@FETCH_STATUS = 0
|
||||||
|
```
|
||||||
BEGIN
|
BEGIN
|
||||||
--执行具体的操作
|
--执行具体的操作
|
||||||
--创建非聚集索引
|
--创建非聚集索引
|
||||||
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
||||||
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([deviceId] ASC,[CollectTime] DESC)')
|
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([deviceId] ASC,[CollectTime] DESC)')
|
||||||
--游标指向下一条数据
|
--游标指向下一条数据
|
||||||
|
```sql
|
||||||
FETCH next from C_userID into @tbname;
|
FETCH next from C_userID into @tbname;
|
||||||
|
```
|
||||||
END
|
END
|
||||||
--关闭游标
|
--关闭游标
|
||||||
CLose C_userID
|
CLose C_userID
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
--------参数定义------------------- DECLARE @Table NVARCHAR(30)
|
--------参数定义------------------- DECLARE @Table NVARCHAR(30)
|
||||||
|
```sql
|
||||||
DECLARE tmpCur CURSOR FOR
|
DECLARE tmpCur CURSOR FOR
|
||||||
SELECT name FROM sys.objects WHERE TYPE='U' AND name LIKE N'%_SRC%' --删除所有含有"_QueryLog"的表
|
SELECT name FROM sys.objects WHERE TYPE='U' AND name LIKE N'%_SRC%' --删除所有含有"_QueryLog"的表
|
||||||
OPEN tmpCur
|
OPEN tmpCur
|
||||||
FETCH NEXT FROM tmpCur INTO @Table WHILE @@FETCH_STATUS = 0
|
FETCH NEXT FROM tmpCur INTO @Table WHILE @@FETCH_STATUS = 0
|
||||||
|
```
|
||||||
BEGIN
|
BEGIN
|
||||||
|
```sql
|
||||||
DECLARE @sql VARCHAR(100)
|
DECLARE @sql VARCHAR(100)
|
||||||
SELECT @sql = 'drop table ' + @Table
|
SELECT @sql = 'drop table ' + @Table
|
||||||
|
```
|
||||||
EXEC(@sql)
|
EXEC(@sql)
|
||||||
|
```sql
|
||||||
FETCH NEXT FROM tmpCur INTO @Table
|
FETCH NEXT FROM tmpCur INTO @Table
|
||||||
|
```
|
||||||
END
|
END
|
||||||
CLOSE tmpCur
|
CLOSE tmpCur
|
||||||
DEALLOCATE tmpCur
|
DEALLOCATE tmpCur
|
||||||
@@ -2,27 +2,37 @@ begin tran
|
|||||||
commit
|
commit
|
||||||
--rollback
|
--rollback
|
||||||
--声明一个变量
|
--声明一个变量
|
||||||
|
```sql
|
||||||
declare @tbname as nvarchar(100);
|
declare @tbname as nvarchar(100);
|
||||||
|
```
|
||||||
--声明一个游标用来遍历查询到的结果
|
--声明一个游标用来遍历查询到的结果
|
||||||
|
```sql
|
||||||
declare C_userID CURSOR for
|
declare C_userID CURSOR for
|
||||||
select distinct TABLE_NAME from information_schema.COLUMNS
|
select distinct TABLE_NAME from information_schema.COLUMNS
|
||||||
where TABLE_NAME like '%_STC' or TABLE_NAME like '%_DYN' or TABLE_NAME like '%_RTK'
|
where TABLE_NAME like '%_STC' or TABLE_NAME like '%_DYN' or TABLE_NAME like '%_RTK'
|
||||||
|
```
|
||||||
--打开游标
|
--打开游标
|
||||||
|
```sql
|
||||||
open C_userID;
|
open C_userID;
|
||||||
|
```
|
||||||
--获取游标指向的数据
|
--获取游标指向的数据
|
||||||
|
```sql
|
||||||
fetch next from C_userID into @tbname;
|
fetch next from C_userID into @tbname;
|
||||||
while @@FETCH_STATUS = 0
|
while @@FETCH_STATUS = 0
|
||||||
|
```
|
||||||
BEGIN
|
BEGIN
|
||||||
--执行具体的操作
|
--执行具体的操作
|
||||||
--删除未来的数据
|
--删除未来的数据
|
||||||
--DELETE
|
--DELETE
|
||||||
--FROM [HiMonitorDB].[dbo].[11350069_STC]
|
--FROM [HiMonitorDB].[dbo].[11350069_STC]
|
||||||
--WHERE aDatetime \>'2020-02-03'
|
--WHERE aDatetime >'2020-02-03'
|
||||||
|
|
||||||
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
||||||
EXEC('delete from [HiMonitorDB].[dbo].['+@tbname+'] where aDatetime\>getdate()')
|
EXEC('delete from [HiMonitorDB].[dbo].['+@tbname+'] where aDatetime>getdate()')
|
||||||
--游标指向下一条数据
|
--游标指向下一条数据
|
||||||
|
```sql
|
||||||
FETCH next from C_userID into @tbname;
|
FETCH next from C_userID into @tbname;
|
||||||
|
```
|
||||||
END
|
END
|
||||||
--关闭游标
|
--关闭游标
|
||||||
CLose C_userID
|
CLose C_userID
|
||||||
|
|||||||
@@ -1,25 +1,35 @@
|
|||||||
--声明一个变量
|
--声明一个变量
|
||||||
|
```sql
|
||||||
declare @tbname as nvarchar(100);
|
declare @tbname as nvarchar(100);
|
||||||
|
```
|
||||||
--声明一个游标用来遍历查询到的结果
|
--声明一个游标用来遍历查询到的结果
|
||||||
|
```sql
|
||||||
declare C_userID CURSOR for
|
declare C_userID CURSOR for
|
||||||
select distinct TABLE_NAME from information_schema.COLUMNS
|
select distinct TABLE_NAME from information_schema.COLUMNS
|
||||||
where TABLE_NAME like '%2020_SRC'
|
where TABLE_NAME like '%2020_SRC'
|
||||||
|
```
|
||||||
--打开游标
|
--打开游标
|
||||||
|
```sql
|
||||||
open C_userID;
|
open C_userID;
|
||||||
|
```
|
||||||
--获取游标指向的数据
|
--获取游标指向的数据
|
||||||
|
```sql
|
||||||
fetch next from C_userID into @tbname;
|
fetch next from C_userID into @tbname;
|
||||||
while @@FETCH_STATUS = 0
|
while @@FETCH_STATUS = 0
|
||||||
|
```
|
||||||
BEGIN
|
BEGIN
|
||||||
--执行具体的操作
|
--执行具体的操作
|
||||||
--删除未来的数据
|
--删除未来的数据
|
||||||
--DELETE
|
--DELETE
|
||||||
--FROM [HiMonitorDB].[dbo].[11350069_STC]
|
--FROM [HiMonitorDB].[dbo].[11350069_STC]
|
||||||
--WHERE aDatetime \>'2020-02-03'
|
--WHERE aDatetime >'2020-02-03'
|
||||||
|
|
||||||
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
||||||
EXEC('delete from [safeMonitorSrc].[dbo].['+@tbname+'] where CollectTime\>GETDATE()')
|
EXEC('delete from [safeMonitorSrc].[dbo].['+@tbname+'] where CollectTime>GETDATE()')
|
||||||
--游标指向下一条数据
|
--游标指向下一条数据
|
||||||
|
```sql
|
||||||
FETCH next from C_userID into @tbname;
|
FETCH next from C_userID into @tbname;
|
||||||
|
```
|
||||||
END
|
END
|
||||||
--关闭游标
|
--关闭游标
|
||||||
CLose C_userID
|
CLose C_userID
|
||||||
@@ -29,27 +39,37 @@ DEALLOCATE C_userID;
|
|||||||
begin tran
|
begin tran
|
||||||
COMMIT
|
COMMIT
|
||||||
--声明一个变量
|
--声明一个变量
|
||||||
|
```sql
|
||||||
declare @tbname as nvarchar(100);
|
declare @tbname as nvarchar(100);
|
||||||
|
```
|
||||||
--声明一个游标用来遍历查询到的结果
|
--声明一个游标用来遍历查询到的结果
|
||||||
|
```sql
|
||||||
declare C_userID CURSOR for
|
declare C_userID CURSOR for
|
||||||
select distinct TABLE_NAME from information_schema.COLUMNS
|
select distinct TABLE_NAME from information_schema.COLUMNS
|
||||||
where TABLE_NAME like '%2020_APP'
|
where TABLE_NAME like '%2020_APP'
|
||||||
|
```
|
||||||
--打开游标
|
--打开游标
|
||||||
|
```sql
|
||||||
open C_userID;
|
open C_userID;
|
||||||
|
```
|
||||||
--获取游标指向的数据
|
--获取游标指向的数据
|
||||||
|
```sql
|
||||||
fetch next from C_userID into @tbname;
|
fetch next from C_userID into @tbname;
|
||||||
while @@FETCH_STATUS = 0
|
while @@FETCH_STATUS = 0
|
||||||
|
```
|
||||||
BEGIN
|
BEGIN
|
||||||
--执行具体的操作
|
--执行具体的操作
|
||||||
--删除未来的数据
|
--删除未来的数据
|
||||||
--DELETE
|
--DELETE
|
||||||
--FROM [HiMonitorDB].[dbo].[11350069_STC]
|
--FROM [HiMonitorDB].[dbo].[11350069_STC]
|
||||||
--WHERE aDatetime \>'2020-02-03'
|
--WHERE aDatetime >'2020-02-03'
|
||||||
|
|
||||||
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
||||||
EXEC('delete from [safeMonitorAPP].[dbo].['+@tbname+'] where CollectTime\>GETDATE()')
|
EXEC('delete from [safeMonitorAPP].[dbo].['+@tbname+'] where CollectTime>GETDATE()')
|
||||||
--游标指向下一条数据
|
--游标指向下一条数据
|
||||||
|
```sql
|
||||||
FETCH next from C_userID into @tbname;
|
FETCH next from C_userID into @tbname;
|
||||||
|
```
|
||||||
END
|
END
|
||||||
--关闭游标
|
--关闭游标
|
||||||
CLose C_userID
|
CLose C_userID
|
||||||
|
|||||||
@@ -1,21 +1,31 @@
|
|||||||
--声明一个变量
|
--声明一个变量
|
||||||
|
```sql
|
||||||
declare @tbname as nvarchar(100);
|
declare @tbname as nvarchar(100);
|
||||||
|
```
|
||||||
--声明一个游标用来遍历查询到的结果
|
--声明一个游标用来遍历查询到的结果
|
||||||
|
```sql
|
||||||
declare C_userID CURSOR for
|
declare C_userID CURSOR for
|
||||||
select distinct TABLE_NAME from information_schema.COLUMNS
|
select distinct TABLE_NAME from information_schema.COLUMNS
|
||||||
where TABLE_NAME like '%_clean'
|
where TABLE_NAME like '%_clean'
|
||||||
|
```
|
||||||
--打开游标
|
--打开游标
|
||||||
|
```sql
|
||||||
open C_userID;
|
open C_userID;
|
||||||
|
```
|
||||||
--获取游标指向的数据
|
--获取游标指向的数据
|
||||||
|
```sql
|
||||||
fetch next from C_userID into @tbname;
|
fetch next from C_userID into @tbname;
|
||||||
while @@FETCH_STATUS = 0
|
while @@FETCH_STATUS = 0
|
||||||
|
```
|
||||||
BEGIN
|
BEGIN
|
||||||
--执行具体的操作
|
--执行具体的操作
|
||||||
--创建非聚集索引
|
--创建非聚集索引
|
||||||
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
||||||
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([Style] ASC,[aDatetime] DESC)')
|
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([Style] ASC,[aDatetime] DESC)')
|
||||||
--游标指向下一条数据
|
--游标指向下一条数据
|
||||||
|
```sql
|
||||||
FETCH next from C_userID into @tbname;
|
FETCH next from C_userID into @tbname;
|
||||||
|
```
|
||||||
END
|
END
|
||||||
--关闭游标
|
--关闭游标
|
||||||
CLose C_userID
|
CLose C_userID
|
||||||
@@ -23,23 +33,33 @@ CLose C_userID
|
|||||||
DEALLOCATE C_userID;
|
DEALLOCATE C_userID;
|
||||||
|
|
||||||
--声明一个变量
|
--声明一个变量
|
||||||
|
```sql
|
||||||
declare @tbname as nvarchar(100);
|
declare @tbname as nvarchar(100);
|
||||||
|
```
|
||||||
--声明一个游标用来遍历查询到的结果
|
--声明一个游标用来遍历查询到的结果
|
||||||
|
```sql
|
||||||
declare C_userID CURSOR for
|
declare C_userID CURSOR for
|
||||||
select distinct TABLE_NAME from information_schema.COLUMNS
|
select distinct TABLE_NAME from information_schema.COLUMNS
|
||||||
where TABLE_NAME like '%_2020_APP'
|
where TABLE_NAME like '%_2020_APP'
|
||||||
|
```
|
||||||
--打开游标
|
--打开游标
|
||||||
|
```sql
|
||||||
open C_userID;
|
open C_userID;
|
||||||
|
```
|
||||||
--获取游标指向的数据
|
--获取游标指向的数据
|
||||||
|
```sql
|
||||||
fetch next from C_userID into @tbname;
|
fetch next from C_userID into @tbname;
|
||||||
while @@FETCH_STATUS = 0
|
while @@FETCH_STATUS = 0
|
||||||
|
```
|
||||||
BEGIN
|
BEGIN
|
||||||
--执行具体的操作
|
--执行具体的操作
|
||||||
--创建非聚集索引
|
--创建非聚集索引
|
||||||
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名)
|
||||||
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([DeviceId] ASC,[CollectTime] DESC)')
|
EXEC('create NONCLUSTERED INDEX '+'IX_'+@tbname+ ' ON '+@tbname+ '([DeviceId] ASC,[CollectTime] DESC)')
|
||||||
--游标指向下一条数据
|
--游标指向下一条数据
|
||||||
|
```sql
|
||||||
FETCH next from C_userID into @tbname;
|
FETCH next from C_userID into @tbname;
|
||||||
|
```
|
||||||
END
|
END
|
||||||
--关闭游标
|
--关闭游标
|
||||||
CLose C_userID
|
CLose C_userID
|
||||||
|
|||||||
7
数据库知识库/工具脚本/按日分组求均值.md
Executable file
7
数据库知识库/工具脚本/按日分组求均值.md
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
SELECT
|
||||||
|
convert(char(10),aDatetime,120)
|
||||||
|
,round(avg([X]),6)
|
||||||
|
,round(avg([Y]),6)
|
||||||
|
,round(avg([Height]),6) FROM [ZHDMTProj].[dbo].[TLDZ1]
|
||||||
|
group by ( convert(char(10),aDatetime,120))
|
||||||
|
order by ( convert(char(10),aDatetime,120))
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
```sql
|
||||||
use HiMonitorDB;
|
use HiMonitorDB;
|
||||||
select * from DataSyncStationSX
|
select * from DataSyncStationSX
|
||||||
where sname in ('GJ1201','GB1201','GB1202','GB1203','GB1204','GB1205','GB1206')
|
where sname in ('GJ1201','GB1201','GB1202','GB1203','GB1204','GB1205','GB1206')
|
||||||
@@ -9,4 +10,5 @@ exec sp_NDrefrenceValue 'GB1204', '2019-05-1 00:00:00.000',0,0,0
|
|||||||
exec sp_NDrefrenceValue 'GB1205', '2019-05-1 00:00:00.000',0,0,0
|
exec sp_NDrefrenceValue 'GB1205', '2019-05-1 00:00:00.000',0,0,0
|
||||||
exec sp_NDrefrenceValue 'GB1206', '2019-05-1 00:00:00.000',0,0,0
|
exec sp_NDrefrenceValue 'GB1206', '2019-05-1 00:00:00.000',0,0,0
|
||||||
|
|
||||||
|
```
|
||||||
commit
|
commit
|
||||||
@@ -5,4 +5,4 @@
|
|||||||
|1 <br>2 <br>3 <br>4 <br>5 <br>6 <br>7|**alter** **database** NEWDBNAME **set** emergency <br>**declare** @databasename **varchar**(255) <br>**set** @databasename='NEWDBNAME' <br>**exec** sp_dboption @databasename, N'single', N'true' <br>dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) --将目标数据库置为单用户状态 <br>dbcc checkdb(@databasename,REPAIR_REBUILD) <br>**exec** sp_dboption @databasename, N'single', N'false'|
|
|1 <br>2 <br>3 <br>4 <br>5 <br>6 <br>7|**alter** **database** NEWDBNAME **set** emergency <br>**declare** @databasename **varchar**(255) <br>**set** @databasename='NEWDBNAME' <br>**exec** sp_dboption @databasename, N'single', N'true' <br>dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) --将目标数据库置为单用户状态 <br>dbcc checkdb(@databasename,REPAIR_REBUILD) <br>**exec** sp_dboption @databasename, N'single', N'false'|
|
||||||
|
|
||||||
==第三步:以上代码请同时运行,可能会出现“数据库其他多个文件与数据库主文件不匹配....”错误,请多次重试执行以上代码 。==
|
==第三步:以上代码请同时运行,可能会出现“数据库其他多个文件与数据库主文件不匹配....”错误,请多次重试执行以上代码 。==
|
||||||
\> 来自 \<[https://zhidao.baidu.com/question/1754918389526048868.html?qbl=relate_question_0&word=sql2008%C8%D5%D6%BE%CE%C4%BC%FE%D3%EB%D6%F7%CE%C4%BC%FE%B2%BB%C6%A5%C5%E4](https://zhidao.baidu.com/question/1754918389526048868.html?qbl=relate_question_0&word=sql2008%C8%D5%D6%BE%CE%C4%BC%FE%D3%EB%D6%F7%CE%C4%BC%FE%B2%BB%C6%A5%C5%E4)\>
|
> 来自 <[https://zhidao.baidu.com/question/1754918389526048868.html?qbl=relate_question_0&word=sql2008%C8%D5%D6%BE%CE%C4%BC%FE%D3%EB%D6%F7%CE%C4%BC%FE%B2%BB%C6%A5%C5%E4](https://zhidao.baidu.com/question/1754918389526048868.html?qbl=relate_question_0&word=sql2008%C8%D5%D6%BE%CE%C4%BC%FE%D3%EB%D6%F7%CE%C4%BC%FE%B2%BB%C6%A5%C5%E4)>
|
||||||
58
数据库知识库/工具脚本/松滋 2号店循环造rtk.md
Executable file
58
数据库知识库/工具脚本/松滋 2号店循环造rtk.md
Executable file
@@ -0,0 +1,58 @@
|
|||||||
|
rollback
|
||||||
|
commit
|
||||||
|
begin tran
|
||||||
|
|
||||||
|
```sql
|
||||||
|
declare @x numeric(18,2) --X
|
||||||
|
declare @dt datetime --时间
|
||||||
|
declare @gpsindex numeric(18,2) --GPSIndex
|
||||||
|
declare @rand float --随机数
|
||||||
|
declare @count int --计数
|
||||||
|
|
||||||
|
set @x = 0
|
||||||
|
set @count = 1
|
||||||
|
set @dt = '2018-09-01 18:35:00'
|
||||||
|
|
||||||
|
```
|
||||||
|
while(@dt < getdate()) begin
|
||||||
|
|
||||||
|
-- set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt)
|
||||||
|
|
||||||
|
|
||||||
|
```sql
|
||||||
|
declare @SELECT_SQL1 NVARCHAR(500)
|
||||||
|
declare @GPSINDEX1 bigint
|
||||||
|
declare @utcnow1 datetime
|
||||||
|
declare @adatetime1 datetime
|
||||||
|
declare @X1 float
|
||||||
|
declare @Y1 float
|
||||||
|
declare @H1 float
|
||||||
|
declare @DX1 float
|
||||||
|
declare @DY1 float
|
||||||
|
declare @DH1 float
|
||||||
|
|
||||||
|
SET @SELECT_SQL1 = 'SELECT TOP 1 @X1=T.[X],@Y1 = T.[Y],@H1=T.[Height],@DX1=T.[dltaX],@DY1=T.[dltaY],@DH1=T.[dltaH] FROM [HMProject].[dbo].[SongZi2_RTK] AS T order by ADATETIME desc'
|
||||||
|
|
||||||
|
EXEC sp_executesql @SELECT_SQL1, N'@X1 float out,@Y1 float out,@H1 float out,@DX1 float out,@DY1 float out,@DH1 float out',@X1 out,@Y1 out,@H1 out,@DX1 out,@DY1 out,@DH1 out
|
||||||
|
|
||||||
|
SET @utcnow1 = GETDATE()
|
||||||
|
SET @GPSINDEX1 = (cast(datediff(ss,'1970-01-01',@dt) as bigint)*1000) - ((DateName(minute,@utcnow1))%10)*60000 - DateName(second,@utcnow1)*1000
|
||||||
|
SET @X1 = @X1+ (rand()*-1 + 0.501)/2000 SET @Y1 = @Y1+ (rand()*-1 + 0.501)/2000 SET @H1 = @H1+ (rand()*-1 + 0.499)/2000 SET @DX1 = @DX1+ rand()/99 SET @DY1 = @DY1+ rand()/99 SET @DH1 =
|
||||||
|
|
||||||
|
```
|
||||||
|
@DH1+ rand()/99
|
||||||
|
```sql
|
||||||
|
SET @adatetime1 = DATEADD(S,@GPSINDEX1/1000,'1970-01-01 00:00:00')
|
||||||
|
|
||||||
|
BEGIN TRY insert into [HMProject].[dbo].[SongZi2_RTK]([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@GPSINDEX1,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1) END TRY BEGIN
|
||||||
|
|
||||||
|
```
|
||||||
|
CATCH END CATCH
|
||||||
|
|
||||||
|
--insert into [ZHDMTProj].[dbo].[Flowmeter01]([GPSIndex],[aDatetime],[X]) values(@gpsindex, @dt, @x) --目标表
|
||||||
|
--****************
|
||||||
|
```sql
|
||||||
|
set @count = @count + 1
|
||||||
|
set @dt = DATEADD(MI,5,@dt) --每次递增5 min
|
||||||
|
```
|
||||||
|
end
|
||||||
@@ -1,8 +1,11 @@
|
|||||||
|
```sql
|
||||||
declare @dt datetime --时间
|
declare @dt datetime --时间
|
||||||
declare @gpsindex numeric(18,2) --GPSIndex
|
declare @gpsindex numeric(18,2) --GPSIndex
|
||||||
declare @rand float --随机数
|
declare @rand float --随机数
|
||||||
declare @count int --计数
|
declare @count int --计数
|
||||||
|
```
|
||||||
--declare @GPSINDEX1 bigint
|
--declare @GPSINDEX1 bigint
|
||||||
|
```sql
|
||||||
declare @adatetime1 datetime
|
declare @adatetime1 datetime
|
||||||
declare @endDate datetime; --结束时间
|
declare @endDate datetime; --结束时间
|
||||||
declare @X1 float
|
declare @X1 float
|
||||||
@@ -18,13 +21,17 @@ declare @H0 float
|
|||||||
set @dt = '2018-10-23 03:08:00.000';
|
set @dt = '2018-10-23 03:08:00.000';
|
||||||
set @endDate= '2018-11-20 18:19:00.000';
|
set @endDate= '2018-11-20 18:19:00.000';
|
||||||
select @X1 = X,@Y1 = Y,@H1 = Height,@DX1=dltaX,@DY1=dltaY,@DH1=dltaH from MYB1_RTK where aDatetime = @dt
|
select @X1 = X,@Y1 = Y,@H1 = Height,@DX1=dltaX,@DY1=dltaY,@DH1=dltaH from MYB1_RTK where aDatetime = @dt
|
||||||
|
```
|
||||||
--求出基准坐标
|
--求出基准坐标
|
||||||
|
```sql
|
||||||
set @X0=@X1-@DX1
|
set @X0=@X1-@DX1
|
||||||
set @Y0=@Y1-@DY1
|
set @Y0=@Y1-@DY1
|
||||||
set @H0=@H1-@DH1
|
set @H0=@H1-@DH1
|
||||||
select @X0,@Y0,@H0
|
select @X0,@Y0,@H0
|
||||||
while(@dt \< @endDate) begin
|
```
|
||||||
|
while(@dt < @endDate) begin
|
||||||
|
|
||||||
|
```sql
|
||||||
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt) SET @DX1 = (rand()*-10 + 10)/2000
|
set @gpsindex = convert(bigint, datediff(ss, '1970-01-01 00:00:00', @dt))*1000 + datepart(ms,@dt) SET @DX1 = (rand()*-10 + 10)/2000
|
||||||
SET @DY1 = (rand()*-10 + 9)/2000
|
SET @DY1 = (rand()*-10 + 9)/2000
|
||||||
SET @DH1 =(rand()*-10 + 8)/2000
|
SET @DH1 =(rand()*-10 + 8)/2000
|
||||||
@@ -34,8 +41,11 @@ SET @H1 = @H1+ @DH1
|
|||||||
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
|
SET @adatetime1 = DATEADD(S,@gpsindex/1000,'1970-01-01 00:00:00')
|
||||||
BEGIN TRY insert into HiMonitorDb.[dbo].MYB1_RTK([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
|
BEGIN TRY insert into HiMonitorDb.[dbo].MYB1_RTK([GPSIndex],[aDatetime],[X],[Y],[Height],[dltaX],[dltaY],[dltaH])VALUES(@gpsindex,@adatetime1,@X1,@Y1,@H1,@DX1,@DY1,@DH1)
|
||||||
END TRY BEGIN
|
END TRY BEGIN
|
||||||
|
```
|
||||||
CATCH END CATCH
|
CATCH END CATCH
|
||||||
--****************
|
--****************
|
||||||
|
```sql
|
||||||
set @count = @count + 1
|
set @count = @count + 1
|
||||||
set @dt = DATEADD(MINUTE,5,@dt) --每次递增5min
|
set @dt = DATEADD(MINUTE,5,@dt) --每次递增5min
|
||||||
|
```
|
||||||
end
|
end
|
||||||
@@ -1,18 +1,22 @@
|
|||||||
use master
|
use master
|
||||||
|
```sql
|
||||||
declare @spid int ;
|
declare @spid int ;
|
||||||
declare @ddlstring nvarchar(max);
|
declare @ddlstring nvarchar(max);
|
||||||
declare @dbname varchar(200);
|
declare @dbname varchar(200);
|
||||||
set @dbname='数据库名';
|
set @dbname='数据库名';
|
||||||
declare tmpcur cursor
|
declare tmpcur cursor
|
||||||
for select distinct spid as spid from sys.sysprocesses
|
for select distinct spid as spid from sys.sysprocesses
|
||||||
where dbid=db_id(@dbname) ;
|
where dbid=db_id(@dbname) ;
|
||||||
OPEN tmpcur;
|
OPEN tmpcur;
|
||||||
fetch tmpcur into @spid ;
|
fetch tmpcur into @spid ;
|
||||||
while (@@FETCH_STATUS=0)
|
while (@@FETCH_STATUS=0)
|
||||||
begin
|
```
|
||||||
|
begin
|
||||||
|
```sql
|
||||||
set @ddlstring=N'Kill '+CONVERT( nvarchar,@spid) ;
|
set @ddlstring=N'Kill '+CONVERT( nvarchar,@spid) ;
|
||||||
execute sp_executesql @ddlstring ;
|
execute sp_executesql @ddlstring ;
|
||||||
fetch tmpcur into @spid ;
|
fetch tmpcur into @spid ;
|
||||||
end ;
|
end ;
|
||||||
|
```
|
||||||
close tmpcur ;
|
close tmpcur ;
|
||||||
deallocate tmpcur ;
|
deallocate tmpcur ;
|
||||||
@@ -1,13 +1,16 @@
|
|||||||
use master
|
use master
|
||||||
go
|
go
|
||||||
|
|
||||||
|
```sql
|
||||||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
|
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
|
||||||
drop procedure [dbo].[p_killspid]
|
drop procedure [dbo].[p_killspid]
|
||||||
GO
|
GO
|
||||||
|
|
||||||
create proc p_killspid
|
create proc p_killspid
|
||||||
|
```
|
||||||
@dbname varchar(200) --要关闭进程的数据库名
|
@dbname varchar(200) --要关闭进程的数据库名
|
||||||
as
|
as
|
||||||
|
```sql
|
||||||
declare @sql nvarchar(500)
|
declare @sql nvarchar(500)
|
||||||
declare @spid nvarchar(20)
|
declare @spid nvarchar(20)
|
||||||
|
|
||||||
@@ -16,18 +19,25 @@ select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id
|
|||||||
open #tb
|
open #tb
|
||||||
fetch next from #tb into @spid
|
fetch next from #tb into @spid
|
||||||
while @@fetch_status=0
|
while @@fetch_status=0
|
||||||
|
```
|
||||||
begin
|
begin
|
||||||
exec('kill '+@spid)
|
exec('kill '+@spid)
|
||||||
|
```sql
|
||||||
fetch next from #tb into @spid
|
fetch next from #tb into @spid
|
||||||
|
```
|
||||||
end
|
end
|
||||||
close #tb
|
close #tb
|
||||||
deallocate #tb
|
deallocate #tb
|
||||||
go
|
go
|
||||||
|
|
||||||
--用法
|
--用法
|
||||||
|
```sql
|
||||||
exec p_killspid 'safeMonitorMgr'
|
exec p_killspid 'safeMonitorMgr'
|
||||||
go
|
go
|
||||||
|
```
|
||||||
DBCC SHRINKDATABASE (safeMonitorMgr)
|
DBCC SHRINKDATABASE (safeMonitorMgr)
|
||||||
go
|
go
|
||||||
|
|
||||||
|
```sql
|
||||||
drop proc p_killspid
|
drop proc p_killspid
|
||||||
|
```
|
||||||
@@ -1 +1 @@
|
|||||||
\>
|
>
|
||||||
@@ -1 +1,3 @@
|
|||||||
|
```sql
|
||||||
exec sp_attach_single_file_db @dbname='ZHDMTProj_SX',@physname='F:\DataBases\ZHDMTProj_SX.mdf'
|
exec sp_attach_single_file_db @dbname='ZHDMTProj_SX',@physname='F:\DataBases\ZHDMTProj_SX.mdf'
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user