一、背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。 二、简介 GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。 GNU Screen可以看…

2023年01月02日 0条评论 1464点热度 0人点赞 路灯 阅读全文

Linux后台运行命令有三种方式: 1. cmd & : 后台运行,关掉终端会停止运行 2. nohup cmd & : 后台运行,关掉终端不会停止运行 3. screen : 窗口管理器,可以轻松在一个物理终端上获得多个虚拟终端的效果 方式一:cmd & cmd & 实现让命令在后台运行。但不要将有用户交互的命令放到后台,这样命令会在后台等待用户输入。后台运行的命令也会将结果输出到控制台上,如果不需要的话,可以将其重定向到某个文件中。使用下面的命令可以将标准输出和错误输出都将被重定…

2023年01月02日 0条评论 1514点热度 0人点赞 路灯 阅读全文

crontab 命令最小的执行时间是一分钟,如需要在小于一分钟内重复执行,有两个方法实现。 1.使用延时来实现每N秒执行 此方法原理是通过延时方法 sleep N 来实现每N秒执行,首先创建一个php脚本test.php,本例test.php放在home目录下,功能是把当前时间写入/home/test.log crontab -e 输入以下语句保存退出: * * * * * php /home/test.php * * * * * sleep 10; php /home/test.php * * * * * sle…

2023年01月01日 0条评论 1569点热度 0人点赞 路灯 阅读全文

HTML定义文件上传组件和上传按钮,使用了 Bootstrap ,不满意可以自己美化。 <form id="form1"> <div class="form-group"> <div class="custom-file"><input id="fileUpload" class="custom-file-input" type="file" /> …

2023年01月01日 0条评论 1461点热度 0人点赞 路灯 阅读全文

单例模式(Singleton Pattern):顾名思义,就是只有一个实例。作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 为什么要使用单例模式 1、PHP语言本身的局限性 PHP语言是一种解释型的脚本语言,这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存,这和ASP.NET、Java等编译型是不同的,比如在Java中单例会一直存在于整个应用程序的生命周期里,变量是跨页面级的,真正可以做到这个…

2023年01月01日 0条评论 1497点热度 0人点赞 路灯 阅读全文

前言 在使用 MySQL 数据库管理系统时,选择一个合适的存储引擎是一个非常复杂的问题。不同的存储引擎都有各自的特性、优势和使用的场合,正确的选择存储引擎可以提高应用的使用效率。 存储引擎 为了能够正确地选择存储引擎,必须掌握各种存储引擎的特性。下面重点介绍几种常用的存储引擎,它们对各种特性的支持如下表所示。   MySQL存储引擎特性汇总和对比 特性 MyISAM Aria InnoDB MEMORY CSV BlackHole 存储限制 有 有 支持 有 有 无 事务安全 不支持 不支持 支持 不支持…

2023年01月01日 0条评论 1615点热度 0人点赞 路灯 阅读全文

1.数据库中中文编码所占字节数: 字符集 字节数 Ascii 1 GB2312 2 GBK 2 utf-8 (utf8mb3) 3 utf-8 (utf8mb4) 4 utf-8(utf-8mb3)和utf-8mb4的区别: 1、utf-8也叫utf-8mb3: 代表一个字符只需要1~3个字节。 2、utf-8mb4: 代表一个字符需要使用1-4个字节,也就是我们平常说的真正的utf-8编码。 区别: 在MySQL数据库中,utf-8是utf-8mb3的别名,它是使用1~3个字节来表示一个字符的,如果需要使用4个字…

2023年01月01日 0条评论 1620点热度 0人点赞 路灯 阅读全文

在线上环境中,偶尔会发生一些令人“我靠”的问题,其实一部分问题源于数据库。当开发环境、测试环境没有出现的问题在线上环境中却偶然出现时,这也是解决问题的一个方向。 脏读 数据库隔离级别为读未提交的时候,可能发生脏读。读未提交指当会话 A 的数据库操作尚未commit时,会话 B 可以读取到这个未提交的数据。而此时如果会话 A 因为某些原因rollback了,那么会话 B 读取的数据就是错误的,也就是脏读。当隔离级别提高到读已提交时,则可以避免脏读。 不可重复读 简单的理解就是多次读取结果不一致,在会话 A 中多次相同…

2023年01月01日 0条评论 1459点热度 0人点赞 路灯 阅读全文

MySQL有哪些锁呢,从锁范围大小可划分为全局锁、表级锁、行级锁,下面按照这个顺序分别记录一下这些锁的机制及其可用的应用场景。 说明:本文阐述的MySQL锁机制是基于MySQL的innoDb引擎,未明确指明隔离级别的默认都为可重复读。 全局锁 全局锁是指对整个数据库实例进行加锁(可理解为库级别锁?),加全局锁的命令为:flush tables with read lock(FTWRL)。FTWRL锁定整库为只读状态,解锁时用unlock tables进行解锁,或者客户端断开链接自动释放锁。FTWRL做了什么呢?首先…

2023年01月01日 0条评论 1516点热度 0人点赞 路灯 阅读全文

MySQL优化器可以生成Explain执行计划,我们可以通过执行计划查看是否使用了索引,使用了哪种索引? 但是到底为什么会使用这个索引,我们却无从得知。 好在MySQL提供了一个好用的分析工具 — optimizer trace(优化器追踪),可以帮助我们查看优化器生成执行计划的整个过程,以及做出的各种决策,包括访问表的方法、各种开销计算、各种转换等。 1. 查看optimizer trace配置 show variables like '%optimizer_trace%'; 输出参数详解: optimizer_…

2023年01月01日 0条评论 1498点热度 0人点赞 路灯 阅读全文