Loading
首页
文章分类
技术教程
知识积累
新闻日报
知识分享
今日新闻
其他页面
网站统计
友情链接
高清壁纸
虎牙直播
关于轩灵
热门文章
VS2019避免全部安装至C盘
2023-04月17号更新v2
中兴F450光猫破解隐藏模式让路由器拨号
影子系统出现BAD_SYSTEM_CONFIG_INFO蓝屏问题
WPS专业版密钥经常提示过期解决方案
标签搜索
windows
linux
python
centos
centos7
网络技术
android
win11
windows 11
游戏
系统重装
Deepseek
ai
安卓
系统
Ubuntu
docker
windows server
vmware
esxi
发布
登录
注册
找到
116
篇与
分享
相关的结果
- 第 13 页
2018-11-16
记一次服务器磁盘突然爆满
昨日,阿里云发来一条消息,磁盘监控报警。 开始没有在意,以为是当时请求量过高导致的,直到晚上的时候,发现站点无法打开,数据库也无法连接,查看监控信息发现系统磁盘全部满了。。 开始以为: 原因就是,当一个文件正在被一个进程使用时,用户删除此文件,文件只会从目录结构中删除,但并没有从磁盘删除。当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间。 尝试kill掉进程,清空/tmp目录,无解。磁盘仍然是占满的状态。 然后检查目录大小,发现我的web站点目录26G。服务器被注入文件了? 看到runtime目录,占用了26G的储存。runtime目录是thinkphp框架的缓存和日志目录。 进这个目录后,发现里面有N个日志文件,每个文件2M。 打开某个日志后查看详细信息后,里面全是数据库连接失败的错误日志,到这里已经知道是什么原因导致thinkphp5生成了这么多的日志文件了。 由于站点使用了队列来处理一些代码,为了方便,队列使用数据库作为驱动,而队列会持续查询数据库队列表,来处理任务。 而队列执行时是在cli模式下的,在thinkphp5.1文档里连接数据库一章有提到: 如果你使用的是长连接或者命令行,在超出一定时间后,数据库连接会断开,这个时候你需要开启断线重连才能确保应用不中断。 正是因为没有开始断线重连,数据库断开后但是队列一直在轮询着,才导致了框架一直生成错误日志,正好框架日志生成,默认没有自动删除日志配置,日志文件会一直累加。 接下来知道原因,解决方法就简单了。 框架开启数据库断线重连 开启日志自动清理(thinkphp V5.1.6+)
默认分类
技术
分享
# linux
轩灵
2018-11-16
0
1,400
145
2018-11-08
启动盘制作时出现错误解决方式
微软最新的 9 月份 1803 系统 install.wim 超过了 4G 软碟通下载打开链接 找到必备工具 即可看到软碟通 机械师工具箱下载 问题: 1. 在用软碟通写入镜像文件 install.wim 大于 4G 的时候,会发现这个文件写不进去 2. 在软碟通写入完成后,重装时会提示 install.wim 错误 分析: 由于 uefi 启动所支持的是 fat32 格式的磁盘,也就是我们 U 盘磁盘格式为fat32 这种类型,但是 fat32 有一个弊端就是不支持单个文件大于 4G。而在微软某些版本中 install.wim 这个文件已经超过了 4G。所以显然写不进去。 也有些人说用最新软碟通写进去了,但我想说的是。为什么能够写进去,因为磁盘格式转换成了 ntfs 格式。因为 ntfs 支持单个文件大于 4G。但是在很多情况下 uefi 启动是不支持 ntfs 的,这个需要主板支持。所以本文档的解决方式不推荐这种把磁盘转换为 ntfs 和 exfat 这种格式进行 注:不要用 ntfs 格式来做启动盘,这样对 U 盘会造成不可逆转的损伤。 首先解决这种问题的方式有好几种 把磁盘直接转换为 ntfs 格式,然后把镜像文件用压缩软件打开,把所有文件解压到 U 盘。然后启动盘就制作完毕了。 把磁盘直接转换为 exfat 格式,然后把镜像文件用压缩软件打开,把所有文件解压到 U 盘。然后启动盘就制作完毕了。 用 rufus 软件制作启动盘。可以制作单个文件大于 4G。 用软碟通选择 usb+hdd+v2 高级隐藏方式写入,写入后删除 1 分区sources/install.wim 文件,然后用打开 cmd 命令提示符以管理员方式运行,使用convert E: /fs:ntfs 命令转换 2 分区为 ntfs,注意盘符。在复制 1 分区所有文件到 2 分区,再把镜像里面完整的 install.wim 复制到 2 分区的 sources 目录。大功告成。 用软碟通进行常规方式写入,写入后进入 U 盘删除 sources/install.wim 文件。因为单文件大于 4G 而 fat32 支持最大单文件不超过 4G 所以这个 install 文件在这里就只有 100 多 MB 或者几百 MB。如下图 1 图 2: 解压镜像文件。解压后找到 sources/install.wim 文件。然后把这个文件复制到 C 盘。复制到 C 盘后 此时运行机械师工具箱,点击对应功能按钮,等待执行完毕。如图 3 然后会看到 C 盘多出来了 2 个 swm 格式的 install 文件。把这 2 个文件复制到 U 盘的sources 目录里面即可。如图 4 好了 关于单个文件大于 4G 制作启动盘的方法就讲到这里了。所有方式我在制作启动盘的过程中都使用过,经常使用第 4 种和第 5 种,但是有些主板不支持第 1.2.3.4 种方式,写入后启动不了,或者重装的安装界面报错。个人推荐使用第 5 种方法。因为第 5种方法 u 盘磁盘格式为 fat32。这是 uefi 启动兼容性最好的格式。
默认分类
技术
分享
# windows
轩灵
2018-11-08
0
2,898
179
2018-11-03
宝塔 专业破解版
1、安装面板免费板 安装命令 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh 2、升级专业 wget -O update.sh http://download.bt.cn/install/update_pro.sh && bash update.sh pro3、找到路径/www/server/panel/class 找到文件名或者直接搜索:common.py 搜索代码164行 data = panelAuth().get_order_status(None) 替换下面 data = { ‘status’ : True, ‘msg’ : {‘endtime’ : 32503651199 } }4、完成后,进入 /www/server/panel/data 新建一个文件 文件名为:userInfo.json 内容空的,如果存在这个文件的删掉重新新建文件。 5、最后输入命令 /etc/init.d/bt restart 重启宝塔 如果使用失败,请恢复成免费版 代码为 wget -O update.sh http://download.bt.cn/install/update.sh && bash update.sh free
默认分类
分享
# linux
轩灵
2018-11-03
0
2,826
123
2018-10-11
Java 堆栈信息对象 StackTraceElement,获取当前线程的执行方法
java.langStackTraceElement类保存了Java中线程中的方法栈信息: 4个属性: /** * 声明的类,是类的全限定名 */ private String declaringClass; /** * 方法名 */ private String methodName; /** * 文件名一般指:XXX.java */ private String fileName; /** * XX.java类中的行数 */ private int lineNumber;一个简单的在SpringBoot 2.0.5-RELEASE 下的示例: for ( StackTraceElement ele : Thread.currentThread().getStackTrace()) { System.out.println("线程栈信息输出:" + ele.getClassName() + "$" + ele.getMethodName() + "$" + ele.getFileName() + "$" + ele.getLineNumber()); }输出结果如下: 线程栈信息输出:java.lang.Thread$getStackTrace$Thread.java$1559 线程栈信息输出:com.example.myboot.businessTests.RabbitMQTest$test2$RabbitMQTest.java$54 线程栈信息输出:sun.reflect.NativeMethodAccessorImpl$invoke0$NativeMethodAccessorImpl.java$-2 线程栈信息输出:sun.reflect.NativeMethodAccessorImpl$invoke$NativeMethodAccessorImpl.java$62 线程栈信息输出:sun.reflect.DelegatingMethodAccessorImpl$invoke$DelegatingMethodAccessorImpl.java$43 线程栈信息输出:java.lang.reflect.Method$invoke$Method.java$498 线程栈信息输出:org.junit.runners.model.FrameworkMethod$1$runReflectiveCall$FrameworkMethod.java$50 线程栈信息输出:org.junit.internal.runners.model.ReflectiveCallable$run$ReflectiveCallable.java$12 线程栈信息输出:org.junit.runners.model.FrameworkMethod$invokeExplosively$FrameworkMethod.java$47 线程栈信息输出:org.junit.internal.runners.statements.InvokeMethod$evaluate$InvokeMethod.java$17 线程栈信息输出:org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks$evaluate$RunBeforeTestExecutionCallbacks.java$73 线程栈信息输出:org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks$evaluate$RunAfterTestExecutionCallbacks.java$83 线程栈信息输出:org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks$evaluate$RunBeforeTestMethodCallbacks.java$75 线程栈信息输出:org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks$evaluate$RunAfterTestMethodCallbacks.java$86 线程栈信息输出:org.springframework.test.context.junit4.statements.SpringRepeat$evaluate$SpringRepeat.java$84 线程栈信息输出:org.junit.runners.ParentRunner$runLeaf$ParentRunner.java$325 线程栈信息输出:org.springframework.test.context.junit4.SpringJUnit4ClassRunner$runChild$SpringJUnit4ClassRunner.java$251 线程栈信息输出:org.springframework.test.context.junit4.SpringJUnit4ClassRunner$runChild$SpringJUnit4ClassRunner.java$97 线程栈信息输出:org.junit.runners.ParentRunner$3$run$ParentRunner.java$290 线程栈信息输出:org.junit.runners.ParentRunner$1$schedule$ParentRunner.java$71 线程栈信息输出:org.junit.runners.ParentRunner$runChildren$ParentRunner.java$288 线程栈信息输出:org.junit.runners.ParentRunner$access$000$ParentRunner.java$58 线程栈信息输出:org.junit.runners.ParentRunner$2$evaluate$ParentRunner.java$268 线程栈信息输出:org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks$evaluate$RunBeforeTestClassCallbacks.java$61 线程栈信息输出:org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks$evaluate$RunAfterTestClassCallbacks.java$70 线程栈信息输出:org.junit.runners.ParentRunner$run$ParentRunner.java$363 线程栈信息输出:org.springframework.test.context.junit4.SpringJUnit4ClassRunner$run$SpringJUnit4ClassRunner.java$190 线程栈信息输出:org.junit.runner.JUnitCore$run$JUnitCore.java$137 线程栈信息输出:com.intellij.junit4.JUnit4IdeaTestRunner$startRunnerWithArgs$JUnit4IdeaTestRunner.java$68 线程栈信息输出:com.intellij.rt.execution.junit.IdeaTestRunner$Repeater$startRunnerWithArgs$IdeaTestRunner.java$47 线程栈信息输出:com.intellij.rt.execution.junit.JUnitStarter$prepareStreamsAndStart$JUnitStarter.java$242 线程栈信息输出:com.intellij.rt.execution.junit.JUnitStarter$main$JUnitStarter.java$70从结果中我们可以看出, 栈顶是Thread的getStackTrace方法,这个很好理解。Thread.currentThread().getStackTrace()[1] 是当前执行查看堆栈信息的方法RabbitMQTest的test2。 栈底是 JUnitStarter的main 方法,然后我们看到实际调用了 org.springframework.test.context.junit4.SpringJUnit4ClassRunner的run 方法。
技术
分享
轩灵
2018-10-11
0
2,007
153
2018-10-08
SpringBoot多数据源unsatisfied dependency expressed through method 'entityManagerFactoryBuilder...
本来的项目(基于SpringBoot 2.0.5-RELEASE)集成了JPA、mybatis的注解、XML方式访问DB。 后面集成多数据源的时候启动SpringBoot时出现了如下错误: ERROR 32320 — [main] com.zaxxer.hikari.HikariConfig : HikariPool-1 - jdbcUrl is required with driverClassName. Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘entityManagerFactory’ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unsatisfied dependency expressed through method ‘entityManagerFactory’ parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘entityManagerFactoryBuilder’ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unsatisfied dependency expressed through method ‘entityManagerFactoryBuilder’ parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘jpaVendorAdapter’ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.JpaVendorAdapter]: Factory method ‘jpaVendorAdapter’ threw exception; nested exception is java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName. at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:732) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:474) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1089) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:859) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412) at org.springframework.boot.SpringApplication.run(SpringApplication.java:333) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:139) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) … 24 more 后来查看了源码,流程如下: @Bean(name = "test1DataSource") @ConfigurationProperties(prefix = "spring.datasource") @Primary public DataSource testDataSource() { return DataSourceBuilder.create().build(); }进入DataSourceBuilder.create().build(): public T build() { Class<? extends DataSource> type = getType(); DataSource result = BeanUtils.instantiateClass(type); maybeGetDriverClassName(); bind(result); return (T) result; }maybeGetDriverClassName(); 方法: private void maybeGetDriverClassName() { if (!this.properties.containsKey("driverClassName") && this.properties.containsKey("url")) { String url = this.properties.get("url"); String driverClass = DatabaseDriver.fromJdbcUrl(url).getDriverClassName(); this.properties.put("driverClassName", driverClass); } }bind(result) 方法: private void bind(DataSource result) { ConfigurationPropertySource source = new MapConfigurationPropertySource( this.properties); ConfigurationPropertyNameAliases aliases = new ConfigurationPropertyNameAliases(); aliases.addAliases("url", "jdbc-url"); aliases.addAliases("username", "user"); Binder binder = new Binder(source.withAliases(aliases)); binder.bind(ConfigurationPropertyName.EMPTY, Bindable.ofInstance(result)); }因为springboot首推的连接池使用了HikariCP连接池,GET到这个点, HikariDataSource的获取数据库连接的getConnection方法: @Override public Connection getConnection() throws SQLException { if (isClosed()) { throw new SQLException("HikariDataSource " + this + " has been closed."); } if (fastPathPool != null) { return fastPathPool.getConnection(); } // See http://en.wikipedia.org/wiki/Double-checked_locking#Usage_in_Java HikariPool result = pool; if (result == null) { synchronized (this) { result = pool; if (result == null) { validate(); LOGGER.info("{} - Starting...", getPoolName()); try { pool = result = new HikariPool(this); this.seal(); } catch (PoolInitializationException pie) { if (pie.getCause() instanceof SQLException) { throw (SQLException) pie.getCause(); } else { throw pie; } } LOGGER.info("{} - Start completed.", getPoolName()); } } } return result.getConnection(); }HikariConfig的validate方法 public void validate() { if (poolName == null) { poolName = generatePoolName(); } else if (isRegisterMbeans && poolName.contains(":")) { throw new IllegalArgumentException("poolName cannot contain ':' when used with JMX"); } // treat empty property as null catalog = getNullIfEmpty(catalog); connectionInitSql = getNullIfEmpty(connectionInitSql); connectionTestQuery = getNullIfEmpty(connectionTestQuery); transactionIsolationName = getNullIfEmpty(transactionIsolationName); dataSourceClassName = getNullIfEmpty(dataSourceClassName); dataSourceJndiName = getNullIfEmpty(dataSourceJndiName); driverClassName = getNullIfEmpty(driverClassName); jdbcUrl = getNullIfEmpty(jdbcUrl); // Check Data Source Options if (dataSource != null) { if (dataSourceClassName != null) { LOGGER.warn("{} - using dataSource and ignoring dataSourceClassName.", poolName); } } else if (dataSourceClassName != null) { if (driverClassName != null) { LOGGER.error("{} - cannot use driverClassName and dataSourceClassName together.", poolName); // NOTE: This exception text is referenced by a Spring Boot FailureAnalyzer, it should not be // changed without first notifying the Spring Boot developers. throw new IllegalStateException("cannot use driverClassName and dataSourceClassName together."); } else if (jdbcUrl != null) { LOGGER.warn("{} - using dataSourceClassName and ignoring jdbcUrl.", poolName); } } else if (jdbcUrl != null || dataSourceJndiName != null) { // ok } else if (driverClassName != null) { LOGGER.error("{} - jdbcUrl is required with driverClassName.", poolName); throw new IllegalArgumentException("jdbcUrl is required with driverClassName."); } else { LOGGER.error("{} - dataSource or dataSourceClassName or jdbcUrl is required.", poolName); throw new IllegalArgumentException("dataSource or dataSourceClassName or jdbcUrl is required."); } validateNumerics(); if (LOGGER.isDebugEnabled() || unitTest) { logConfiguration(); } }这个if分支: jdbcUrl = getNullIfEmpty(jdbcUrl); else if (driverClassName != null) { LOGGER.error("{} - jdbcUrl is required with driverClassName.", poolName); throw new IllegalArgumentException("jdbcUrl is required with driverClassName."); }这里要求DataSource的参数存在 jdbcUrl 、以及driverClassName,而我们的配置是: spring.datasource.url=jdbc:mysql://localhost:3306/mypydb spring.datasource.username=root spring.datasource.password=11111111 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource2.url=jdbc:mysql://localhost:3306/mypydb2 spring.datasource2.username=root spring.datasource2.password=11111111 spring.datasource2.driver-class-name=com.mysql.jdbc.Driver所以将url改为 jdbc-url 即可。 spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/mypydb spring.datasource2.jdbc-url=jdbc:mysql://localhost:3306/mypydb2
技术
分享
轩灵
2018-10-08
0
2,012
118
2018-10-03
Git核心命令会这些就够了
git 与 svn 的区别 存储方式 使用方式 管理模式 git 提交代码流程 本地开发分支,使用 add 命令将修改的内容添加到本地缓存空间,通过 commit 命令将添加的内容提交到本地仓库, push 命令将本地仓库的内容提交到关联的远程仓库。 DEVER -------(add) --> local cache ------(commit)--> local repository -------(push)--> remote repositorySVN 管理模式 local --> remote remote挂了,导致本地不能做任何操作GIT 管理模式 git 本地可以做remote一样的操作。 git可以关联多个远程仓库。 git remote还可以备份。 git使用K-V存储数据。SVN使用复制版本完成可回滚操作。git 核心命令 创建、克隆、添加、提交、push、pull、更新、关联远程 - 创建git项目,生成一个 .git 目录 git init git remote add origin XXX.git echo 'You is a bad man, haha!' > readme.md git status git add -A git commit -m '提交记录' git push --set-upstream origin master (首次),后面git push即可 git pull git clone XXX.git 本地目录名管理模式 mkdir -p src/main/java/com echo 'package com' > hello.java git remove --cached target -r git commit -am '注释' git commit -m '注释'分支 git branch : #显示本地分支 git branch -av : #包含显示远程分支 git branch -avv : #包含显示远程分支,包含关联信息 git branch 新分支name :# 基于当前分支新建分支 git branch 新分支name #已存在分支 :# 基于已存在分支新建分支 git branch 新分支name commitid :# 基于提交id新建分支 git checkout 分支名 : #切换分支 git branch -d 分支名: # 删除分支 git merge branch : #将branch合并到当前分支远程仓库 git remote -v : #查看远程信息 git remote add origin XXX.git git remote add origin2 XXX.git git push --upstream origin2 master : #推送到关联的第二个仓库 git push origin[2] git remote remove 远程仓库名 : # 删除关联的远程仓库日志 git log: # 查看提交日志 git log --online : # 一行行的查看 git log branch --online: # 查看分支的日志 git log dev..master : # master有多少提交没有同步到dev来。 git log --graph --online : #查看提交网络图 git show [commitId]: #展示变更的内容恢复历史 reset 场景: 当我们提交了错误的代码后,想回归到原来的某个版本 可以使用 reset 操作。 git help reset语法 将当前分支的head指向指定的commitid状态, work tree 依赖于模式mode。 git reset [#mode#] [#commit#]把#号替换成尖括号mode 的值: –soft :不会改变index文件和working tree,仅仅将head指向了commitid,使用git sattus查看时,发现是尚未提交的,你需要手动进行commit。 –mixed :这是默认值。重设index文件,但是不会改变working tree。更改后的文件被保留,但是不会被标记为commited。 –hard :重设index文件和working tree。所有在commitid后发生的改变均会舍弃掉。 –merge:合并,意义不大。commitid和当前head版本中的某个文件在本地被改变的话就会放弃reset。 –keep:commitid和当前head版本中的某个文件在本地被改变的话就会放弃reset。 例如:回退到commitid 1a02031a7d86684246d878a58ff4e1601f14afb7 的版本。 git reset 1a02031a7d86684246d878a58ff4e1601f14afb7此时,远程分支的代码已经在commitid版本之后了,所以push会失败,可以使用强制push覆盖掉远程代码库。 git push -f origingit 原理 git 存储对象 git 是一个内容寻址文件系统,核心是一个简单的KV数据库,插入任意内容会返回一个用于取回该值的hash。 find .git/objects/ -type f : 查找所有的git对象 git hash-object -w README.md git cat-file -p commitId > README.md : # 回滚内容,可以将commitId的内容写入到README.md中,完成了一次回滚的操作 git cat-file -t commitID : # 查看数据类型 > git add 会在objects添加对象。 > 使用后可以 用 find .git/objects -type f 查看是否新增了对象。 bash $ find .git/objects -type f .git/objects/69/f22ff2d6d6d4d8288fa9fa99ac2d58927ab1d6 .git/objects/99/f5369cae277ef56123d0012e2ef952e2e9d825 $ git add git基础.md $ find .git/objects -type f .git/objects/69/f22ff2d6d6d4d8288fa9fa99ac2d58927ab1d6 .git/objects/90/0aabe1fb581794dd7e5cd238828f112f5109af #新增的 .git/objects/99/f5369cae277ef56123d0012e2ef952e2e9d825搭建企业私有git服务 git 支持的协议 local 协议 本地共享目录; 快速;简单;局域网; 速度慢; 仅仅小项目; D盘创建仓库: git init --bare hello.git : 创建一个裸项目E盘克隆: git clone /d/XXX/git这样本地仓库在E盘,远程分支在D盘,就是一个基本的git服务了。 ssh 协议 git init --bare hello.git : 创建一个裸项目 git clone root@ip:XXX.git ssh-keygenhttp 协议 nginx 是基础(3 years experience) git协议 一般不用 基于 gogs 开发企业git web 服务 比 gitlab 轻便 下载gogs版本 https://github.com/gogs/gogs/releases 选择要下载的版本 解压运行 在解压后的根目录下执行 gogs.exe web访问gogs web 服务 http://localhost:3000/ 可以看到gogs服务启动成功 首次配置 第一次进入web页面进行配置信息 gogs 备份 gogs.exe backup会在根目录生成一个备份文件如: gogs-backup-20181004183106.zip gogs 恢复 gogs.exe restore --from=gogs-backup-20181004183106.zip
技术
分享
轩灵
2018-10-03
0
1,717
177
2018-09-21
开机到桌面弹出一分钟重启解决办法
1.强制关机(按住电源键10S以上)后再开机,重复三次以上,或者按住shift选择重启,系统会自动进入蓝屏选择项界面,选择“查看高级修复选项或者疑难解答” 2. 高级修复如果没有启动设置,点查看更多恢复选项,选择启动设置,点击重启 3. 自动开机会进开机模式选择,按4或者F4进入安全模式 4.开机到桌面,此时按WIN+X,选择命令提示符(管理员)或者Windows PowerShell(管理员) 5.输入 netsh winsock reset按回车执行,出现错误提示不要管 只看最后一条重置成功就行,然后重启电脑
技术
分享
# windows
轩灵
2018-09-21
0
2,206
132
2018-09-20
【机械师】重装系统讲解
1. 为什么新机子要重装系统 【群文件 四、售后 优化 重装系统】——1. 收货及需要做什么 的里面,最下面的5. 新机子为什么要重装系统,已经说的话很明白了,自己去看看。 1. 机械师出厂除个别型号外,其余没有系统。没人会一步步按照教程给你安装,因为太废时间,所以使用时拷贝系统,也就是常见ghost系统,关于ghost系统,仁者见仁智者见智,ghost有优点也有缺点,如果想要了解更多,请百度 2. 一般你们收到的系统都是仓库调试给你们预装的,(F3k B6 pX780正版), 后面我会解释,我不能说你们收到的都是有问题的,但肯定会有一部分有问题。 咱们先说说重装系统的好处: 2. 重装系统的好处 1.杀死木马病毒 重装系统可以杀毒,大部分用户使用的是FORMAT格式化命令,FORMAT会清空操作系统盘符数据,当然木马病毒也一同杀死了。 2.提高系统稳定性提高 纯净的操作系统稳定性最好,随着用户各种应用、驱动程序加载,特别是设计有缺陷、错误连连的应用软件,会对系统的安全稳定性带来隐患,尤其是系统各种错误提示增多,重装系统可以解决这个问题。 3.提高系统运行速度 系统用的时间长了,内置的软件、冗余注册表值、临时数据都会拖累操作系统运行速度,重装系统是直接有效的提速方式。 4.清理系统垃圾 清理系统垃圾体现在常年累月的使用系统,造成数据堆积过多。重装系统将数据清空,重新复制系统文件,身材自然会小一圈。 5.重装系统有利于数据碎片整理 重装系统有利于提高硬盘空间的利用率,通过格式化硬盘数据,抹去了长期运行遗留到硬盘的数据碎片,从而提高硬盘寿命。(针对于机械硬盘) 机械硬盘平常使用就可以碎片清理了 6.修复缺失的系统文件 有相当部分的程序失灵,是由原系统文件丢失、受损造成的。利用重装系统,可以修复文件受损造成的系统困惑。 7.系统崩溃时的唯一选择 系统崩溃时,除了重装系统,还有什么办法?唯一能做主的是花钱重装,还是自己动手重装,总之就是重装。 8.还原用户操作习惯 假如我习惯了浏览器操作方式(计算机),有一款工具条把浏览器操作恶意修改了,就会给我的使用带来麻烦,重装系统就可以解决。 9.还原用户喜爱版本 并不是所有win10的版本都适合你,重装给你不同的版本享受。 10. 一些作死行为最快解决方法 比如(凹凸曼)有时候学技术,改东西改了乱七八糟,不知道怎么弄回来,就是重装系统 3. 原版、正版、定制版、盗版 win10系统的简述 1. 原版系统 微软官方下载的win10原版镜像系统,未经过任何修改,统一称为原版系统。 MSDN 所提供的也是win10原版系统。 2. 正版系统 购买微软正版win10系统,无论是系统联网自己激活的,或是用秘钥批量激活的,还是正版系统光盘里秘钥激活的,只要有微软官方授权的,统称为正版win10系统。 很贵,最便宜写入主办的也需要300,win10家庭版900,专业版本1400左右。 3. 定制版系统 在中国,各种所谓的定制版本,都是基于原版系统离线修改优化而成,他们都根据自己的需求,对原版系统做了更改。 4. 盗版系统 不论你是不是原版,还是定制版,还是各种论坛提供的,还是外面电脑店给你装的,只要不用正版激活秘钥激活的,没有微软官方授权的,没有花大价钱的买的系统, 软件激活 秘钥激活 各种激活的 都是 盗版系统。(名义上) 4. 盗版kms激活、正版激活、淘宝15元买的秘钥 区别 机械师目前自带正版系统只有F117-F3K、F117-F6G,B6如果后续机型有自带正版,请以客服为准。 一、 KMS激活: KMS(Windows密钥管理服务)_百度百科https://baike.baidu.com/item/KMS/66195?fr=aladdin 二、 正版激活:正版购买数字秘钥 花了很多钱,支持了正版,表扬你的正版意识。但,买笔记本电脑的很多都是学生,支持不起,太贵了,900的家庭,1400的专业,我选择数字权利。 三、 数字权利激活: win10系统的上线同时一个全新的激活机制上线,激活将绑定你的微软账户!绑定账户后显示Windows已与Microsoft关联的数字许可证激活,数字许可证就是你的数字秘钥,这个激活可以通过洗白,秘钥,msdn订阅等获得!数字激活永久激活,这台电脑只要是还能用你登录你获得数字许可证的账户就会自动激活,可以跟随最新的更新,系统稳定性强。 淘宝15元,和正版一模一样,没任何区别。 四、 大白话: 1. 我感觉其实KMS和数字权利激活,在日常使用没有近乎没有区别。但是,KMS会被win10安全中心报错,而且,你怎么知道你使用的KMS是安全没有放病毒的?另外由组织的服务器激活的180天后,你需要重新激活一次。 2. 第二,我在群文件提供的KMS激活那是绝对安全的,没有病毒的,你们只需要180天点击一次就OK。但是,如果涉及到出国,在国外你使用W10系统是必须使用数字权利激活的。数字激活,绑定自己的微软邮箱,相当于一劳永逸。 3. 另外,kms激活前电脑是w10专业版系统,用了KMS激活就变成了教育版、家庭版,虽然这些版本的使用对于你们并没有区别,但是谁放这专业版不要,要用“便宜的”家庭、教育版本? 4. 淘宝直接搜索win10,会有店铺提供win10激活秘钥,win10专业版。不支持重装的便宜,支持重装的稍微贵一些,其实秘钥这玩意,看你怎么想。 打个广告,群里也卖win10秘钥,和淘宝相比贵一二块钱,流量少进价高。 机械师俱乐部门诊部 群号:482960296,进群后看群公告和群文件,找管理即可。 详情参见 群文件 一 规章制度 群规,不希望enmm,被误解,所以群规写的很清楚。 本文转自机械师俱乐部贴吧群
默认分类
技术
分享
# windows
轩灵
2018-09-20
0
1,402
105
上一页
1
...
12
13
14
15
下一页