配置rsync daemon模式进行同步文件或目录 rsync简述rsync 是一个常用的 Linux 应用程序,用于文件同步。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cp和mv命令。使用场景:打包服务器编译成功后,将相关文件移动到部署服务器上。Ubuntu系统默认已经安装有rsync,因此可以直接使用rsync命令将同一台机器或者不同机器之间的目录或文件进行同步,这种方式使用起来就相对比较简单,只需要了解rsync的命令参数即可。而使用daemon守护进程
【shell脚本】清理指定时间之前的超期文件 背景正常运行的服务器每天都会产生大量的日志,如果长时间不清理,会导致磁盘使用率过载,严重的会影响IO密集型操作,比如数据库查询操作的性能。如果有一个监控磁盘使用率的脚本,当检测到磁盘使用率超过指定阈值后,就去清理日志文件,就可以避免这种情况。原理清理日志的原理,就是通过du -h命令获得服务器相关使用信息,然后配合awk命令截取到磁盘使用率那一列,就可以得到当前时间服务器的磁盘使用率数据,然后再通过find 目录 type -f -cmin命令找到超期的文件进行清理。脚本#!/bin/bash#
VScode使用Remote SSH进行远程开发,跳转缓慢文件解决 引言众所周知,一些特定的编程语言可能需要Linux环境的支持,比如在golang代码中引用C语言,就需要使用到cgo,而这个环境配置需要Linux作为支撑。如果本机使用的是Windows环境,想要在Linux环境中进行代码编译、调试、部署,还有如下几种方式:1. 搭建Windows + Linux双系统。Windows进行文档处理等办公操作,Linux进行开发、编译、调试等工作。缺点是,系统切换比较慢,有些沟通工具支持不好,比如在开发环境下,如果团队使用微信进行沟通,就可能导致信息延迟、沟通不畅等问题,
Windows系统使用VScode开发golang程序,远程连接Ubuntu系统编辑代码并编译运行 文章目录虚拟机安装Ubuntu虚拟机安装及注册VMware安装Ubuntu无桌面版Ubuntu系统配置golang环境Ubuntu系统配置git、mysqlVScode插件安装安装Remote DevelopmentMySQL management tool翻译插件新的改变功能快捷键参考使用Windows进行编程开发虽然很方面,有着各种可视化桌面工具,但是对于特定的依赖可能安装起来特别费劲。比如,在使用golang进行开发时,有些场景会调用c代码,这就需要配置cgo环境,而Windows系统配置cgo就比
ubuntu系统安装微信过程与问题解决记录 ubuntu系统安装微信electronic wechatdeepin-wine安装步骤问题更换源添加存储库存储库MainUniverseMultiverseRestrictedPartner参考之前,在Linux系统安装微信一般都是使用electron构建的,比如electronoic-wechat。electronic wechatelectronic wechat是一个开源项目,地址https://github.com/geeeeeeeeek/electronic-wechat。该项目由第三方社
ubuntu安装mysql忘记密码并重置 安装mysql在ubuntu系统上安装mysql过程如下:# 1.更新软件源sudo apt-get update # 2.安装mysqlsudo apt-get install mysql-server # 3.启动和关闭mysql服务器service mysql startservice mysql stop# 4.进入mysql shell界面mysql -u root -p上面安装mysql-server的命令,会安装如下相关的包:apparmormysql-clie
ubuntu系统权限与常用安装命令 ubuntu软件安装命令安装软件解压缩软链接建立软链接删除软链接权限提升用户权限为root权限修改root权限为用户权限参考功能快捷键安装软件解压缩# 解压当前目录的.tar.gz压缩文件到/home/user/soft目录sudo tar -zxvf xxx.tar.gz -C /home/user/soft软链接建立软链接删除软链接权限Linux系统权限分为普通用户权限、超级root权限。默认进入的使用的是普通用户权限,通过sudo su命令可以切换到root权限。提升用户权限为r
【微软面试题】golang实现红包金额随机分配 问题有一次参见微软面试,在第三面技术面的时候,面试官给了如下一道算法题:Split money in red envelop. Given amount S, split into N random numbers.For example:Input: S=100 N=3Output: [40.00 25.03 34.97]分析场景这是一道模拟抢红包的场景,有一个总额为S的红包,有N个人抢,每个人抢到的金额随机,且总额为S。隐藏点目前红包最小单位为分,因此最终得到的浮点数精度为2位小
面试常见题型之【滑动窗口】解题模板与示例 概述算法面试过程中,经常会遇到求解满足某种条件的子串问题,对于这种类型的题,一般可以使用双指针或滑动窗口解答,滑动窗口问题可以认为是一种特殊的双指针。什么是滑动窗口在学习计算机网络时,在TCP协议中,为了进行拥塞控制,提出使用滑动窗口进行优化。滑动窗口,顾名思义是使用一个大小可变的窗口,通过控制窗口左右两端移动的方向和移动步调,来达到找出要查找子序列的目的。左右两端点一般是向前滑动,可以是右端固定时,左端向前滑动;或者左端固定时,右端向前滑动。滑动窗口法,可以用来解决一些查找满足一定条件的连续区间
面试过程中常见回溯套路总结 回溯算法概述什么是回溯算法回溯算法,又称为“试探法”、“穷举法”,是暴力算法的一种形式,也是一同通用的解题思路,按选优条件向前搜索,以达到目标。在解决问题时,每进行一步,都是抱着试试看的态度,如果发现当前选择非最优,或者按照当前路径走下去达不到目标,需要回退上一步的操作,重新进行下一轮选择。这种走不通就回退,再重新选择,直到遍历所有路径的方法就是回溯算法。通俗地说,回溯法就是对每一个决策进行遍历的过程,可以理解为通过选择不同的树杈寻找到目标,一个树杈一个树杈地去尝试遍历。如果选择的当前路径不能达到目
mysql中如何查看表是否被锁 如何查看是否发生死锁在使用mysql的时候,如何查看表是否被锁呢?查看表被锁状态和结束死锁步骤:1.在mysql命令行执行sql语句use dbName; // 切换到具体数据库show engine innodb status; // 查询是否发生死锁2.查看表被锁状态show OPEN TABLES where In_use > 0; 该语句可以查询到当前锁表的状态3.分析锁表的SQL通过sql日志,分析相应SQL,给表加索引,常用字段加索引,表关联字段加索引等方式对
一个模板解决二叉树路径相关问题 面试过程中,经常会被问到二叉树的遍历、从根节点到各叶子节点所有路径、是否存在某条路径和为某个值等算法题。针对这些题,都可以使用二叉树的深度优先遍历模板加以解决。解题模板使用深度优先遍历,将从根节点到叶子节点经过的路径的值放在path切片中,当到达叶子节点时将各路径放入二维切片的指针变量res中,然后递归调用左子树、右子树。// 深度优先遍历(递归实现方式)// 注意:这里path一维切片不能用指针类型,二维切片使用指针类型的切片,否则得不到想要的结果func dfsPaths(curNode *
Windows系统配置Nocalhost进行远程调试 背景虽然goland、vscode都支持debug甚至远程debug,但是在调试过程中,难免修改配置、添加调试信息、修改代码并验证,这样就需要提交代码,重新编译、部署以验证功能是否符合预期,这样就拉长时间线,拉低了开发效率。一个系统可能还好点,如何项目A调用B、B又调用C,想要调试C,本地调试的话就需要配置3套环境,分别运行3个项目,流程线可想而知。k8s容器化使用k8s容器化,可以极大地提高开发效率,将一般项目改造成k8s部署的方式,只需将配置信息放入.yaml文件并设置相关资源、镜像等信息。No
使用squirrel进行sql拼接不生效问题 拼接sql的时候,一般使用同一个变量不断拼接连接。但是,在使用github.com/Masterminds/squirrel包进行sql拼接时,需要多加注意:在使用变量添加sql语句后,还需要重新再赋值给该变量,否则达不到想要的结果。如下代码:import sq "github.com/Masterminds/squirrel"func FindProviderProduct(providerID int, keyWord string) (products []*ProductInfo, err
ubuntu18.04使用kubeadm部署k8s单节点遇到的问题记录 Ubuntu安装k8s单节点参见:ubuntu18.04使用kubeadm部署k8s单节点注意:在参照上面文章进行操作时,可能会出现如下问题:①执行apt-get -y install apt-transport-https ca-certificates curl software-properties-common安装工具包时,出现没有要安装的候选包,可以先执行apt-get -y update更新后,再进行单独安装# 安装工具包,出现Package 'software-properties-co
Linux CFS调度算法初探 调度器概述进程是操作系统用来组织计算机中的任务,它从诞生就随着CPU时间执行,直到最终消失。计算机计算资源是有限的,但是进程却被赋予越来越多的任务,如何在进程间分配有限的计算资源,最终让用户获得最佳的使用体验,这是调度器需要解决的问题。内核中安排进程执行的模块称为调度器(scheduler)。线程与进程”进程是资源分配的最小单位,线程是CPU调度的最小单位“这样的回答太抽象,不太容易让人理解。下面引用一张图片加以类比说明:一般,线程是实际执行任务的单位,所以在Linux中,也被成为任务task。