安装samba、samba-common、samba-client
yum install samba samba-common samba-client
启动samba:
ststemctl start smb.service
查看samba状态
groupadd share
useradd xiaoming -G share
passwd xiaoming
xiaoming
useradd hanmeimei -G share
useradd lilei -G share
smbpasswd -a xiaoming
//输入并确认密码
smbpasswd -a hanmeimei
//输入并确认密码
smbpasswd -a lilei
//输入并确认密码
创建一个共享文件目录share用于公共共享, 创建用户文件目录xiaoming hanmeimei lilei
mkdir /var/share /var/xiaoming /var/hanmeimei /var/lilei
chmod 777 /var/share
(1) 共享对象名字为:你的姓名缩写
(2) 共享目录/share
![]() |
share组成员、lilei用户对该目录具有访问权限、可修改权限、可浏览权限
(1) 在客户端上创建1.txt文件
(2) 在服务端上创建2.txt空文件,创建3.txt文件(内有字符串”hello 3.txt”)
(3) 在客户端实现文件内容添加,添加2.txt文件内容,向其写入”hello world!”字符串
(4) 在客户端查看3.txt文件
关闭防火墙
windows上访问
记得修改/etc/selinux/config
将SELINUX=enforcing 改为 SELINUX=disabled, 然后重启服务器
(1) 在windows上创建1.txt
(2) 在服务端上创建2.txt空文件,创建3.txt文件(内有字符串”hello 3.txt”):
(3) 在客户端实现文件内容添加,添加2.txt文件内容,向其写入”hello world!”字符串
(4) 在客户端查看3.txt内容
这篇文章算是要和之前写的《程序员懂业务有多重要?》“唱反调”了。从工作开始,我就不断被灌输着一种业务至上的观点,无论在中国的公司,还是美国的公司,衡量一个决定或者一个需求的价值,都是在业务上有多大的帮助,都说businessimpact是什么。我从不怀疑单纯这样做的初衷,但是我质疑单纯这样做的结果。我觉得,即便是一个业务驱动为主的团队,在决策的时候,技术的占比,应当占据显著的地位。因而我说,不要被业务牵着鼻子走。继续把这一点发扬光大,我认为它对团队发展,对个人发展,都是如此。曾经认为,这样的观点应该是公认的,但是我越来越发现,事实并不是这样。应该说几乎所有程序员都看到了业务上面的价值,都明白所谓“用技术创造业务价值”的意义,但是其中却有很多人忘掉了技术的根基,技术是程序员吃饭和安家立命之本,它不只是在实施过程中的一门工具和一种途径,它本身就有着决定项目和产品走向的能力。自己的经历我把做的项目,或者写的代码,非常粗略地,可以分为两类:一种是基于现有代码设施,来写基于业务逻辑的实现,包括新的接口、新的条件分支等等,这种代码被称为“业务代码”;另一种则是拓展基础设施,实现新的可复用特性,本身
0x00概述在进行Prometheus查询或者新增PrometheusAlerts时候,会出现报错couldnotparseexpression:parseerroratchar107:rangespecificationmustbeprecededbyametricselector;初步看以为是查询语句写错了,其实此处是查询语句包含SubQuery导致的问题,是Prometheus版本过低导致的。0x01问题现象在版本为2.1的Prometheus上查询最近7天的CPU最大利用率的时候,返回报错,报错可以参考此issue,couldnotparseexpression:parseerroratchar107:rangespecificationmustbeprecededbyametricselector#9查询语句为:sum(max_over_time(irate(container_cpu_usage_seconds_total{namespace!='',container_name!='',container_name!='P
1.swoole服务端文件:swoole_reload_server.php<?php /** *Exampleforswoolereloadphpcodewithoutshutdowningserver. * *@authorLancelothttps://github.com/LinkedDestiny */ classServer <?php /** *Exampleforswoolereloadphpcodewithoutshutdowningserver. * *@authorLancelothttps://github.com/LinkedDestiny */ classServer { private$serv; publicfunction__construct(){ $this->serv=newswoole_server("0.0.0.0",9501); $this->serv->set(array( 'worker_num'=>8, 'daemonize'=>fa
DATE函数语法= DATE(<年>,<月>,<日>)复制DATE函数,属于“值函数”之一,返回某个具体的日期。用的频率不是特别的高,一般用来限定时间使用,比如说从哪一天开始,或者哪一天结束。参数第一参数:年。通常情况下,年份这一项一般情况都是需要输入四位数,并且日期要大于1900年3月1日以后的日期。如果输入负数或者大于9999的数字,那么结果会“报错”。如果输入数值在“0~1899”范围之间的任意一个数字,那么结果都会与1900相加,作为年份值。第二参数:月。一般情况下,输入的值范围在“1~12”之间。如果输入数字为负数或者大于12的情况下,会从年份上进行加减。第三参数:日。一般情况下,日期的范围是随着月份变动的,比如是1月份,那么范围是“1~31”;2月份是“1~28/29”。如果当月的日期填写大于最大值或者是负数,会从月份上进行加减。这三个参数,当数值带有小数的情况,都会遵守四舍五入的计算法则。返回结果一个具体的日期。应用例子年份例子1:DATE年份例子1= DATE(2012,12,1)复制结果如下:返回的结果是2012年12月1日。年份例
关于Red-KubeRed-Kube是一套kubectl命令工具集,该工具旨在帮助广大研究人员从网络攻击者的角度评估Kubernetes集群的安全态势。这些命令可以实现被动数据收集和信息披露,或者用于主动执行影响集群的实际操作。这些命令被映射到了MITREATT&CKTactics以帮助广大安全研究人员了解集群安全间隙。当前版本的Red-Kube被封装成了使用python模块,以便基于不同的场景或策略在一次任务执行中运行多个命令。依赖组件Python3依赖:pip3install-rrequirements.txt复制Kubectl(Ubuntu/Debian):sudoapt-getupdate sudoapt-getinstall-yapt-transport-httpsca-certificatescurl sudocurl-fsSLo/usr/share/keyrings/kubernetes-archive-keyring.gpghttps://packages.cloud.google.com/apt/doc/apt-key.gpg echo"deb
包表示形式 .NETStandard引用程序集的主要分发载体是NuGet包。实现会以适用于每个.NET实现的各种方式提供。 NuGet包面向一个或多个框架。.NETStandard包定位“.NETStandard”框架。可以使用netstandard精简TFM(例如netstandard1.4)来设定.NETStandard框架作为目标。如果构建的库将用于在多个运行时上运行,就应将此框架作为目标。对于最广泛的API集,将netstandard2.0设定为目标,因为.NETStandard2.0的可用API数量比.NETStandard1.6的两倍还多。.NETStandard.Library元包引用定义.NETStandard的一整套NuGet包。要指定netstandard作为目标,最常见的方法是引用此元包。它描述并提供了对大约40个.NET库及定义.NetStandard的相关API的访问权限。可以引用以netstandard为目标的其他包来使用其他API。如何指定目标框架 以应用或库中的框架为目标时,需要指定想要向应用或库提供的API集。使用目标框架名字对象(TFM)在项目
前言 找到SQL注入漏洞后,我们可以用它来干什么呢?那么本篇文章给大家带来的就是SQL注入漏洞利用技术,现在是时候让我们去体验一下漏洞利用的乐趣了。正文第三节利用SQL注入3.1、识别数据库要想发动SQL注入攻击,就要知道正在使用的系统数据库,不然就没法提取重要的数据。首先从Web应用技术上就给我们提供了判断的线索: ASP和.NET:MicrosoftSQLServerPHP:MySQL、PostgreSQLJava:Oracle、MySQL底层操作系统也给我们提供了线索,比如安装IIS作为服务器平台,后台数据及很有可能是MicrosoftSQLServer,而允许Apache和PHP的Linux服务器就很有可能使用开源的数据库,比如MySQL和PostgreSQL。基于错误识别数据库大多数情况下,要了解后台是什么数据库,只需要看一条详细的错误信息即可。比如判断我们事例中使用的数据库,我们加个单引号。error:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfort
Arthas简介Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。Arthas支持JDK6+,支持Linux、Mac、Windows,采用命令行交互模式,同时提供丰富的Tab自动补全功能,进一步方便进行问题的定位和诊断。Arthas能帮你解决的问题1、这个类从哪个jar包加载的?为什么会报各种类相关的Exception?2、我改的代码为什么没有执行到?难道是我没commit?分支搞错了?3、遇到问题无法在线上debug,难道只能通过加日志再重新发布吗?4、线上遇到某个用户的数据处理有问题,但线上同样无法debug,线下无法重现!5、是否有一个全局视角来查看系统的运行状况?6、有什么办法可以监控到JVM的实时运行状态?7、怎么快速定位应用的热点,生成火焰图?Arthas安装使用as.shArthas支持在Linux/Unix/Mac等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲回车执行即可:$curl-Lhttps://alibaba.github.io/arthas/install.sh|sh 复制上述命令会下载启动脚本文件as.sh到当前目录,你可以放在任何
CreateTime--2017年8月23日11:03:31 Author:Marydonjs设置百分比保留两位小数错误用法: varpercent=(num1/num2)*100%;正确用法:varpercent=Math.round(num1/num2*10000)/100+"%";复制说明: 1.Math.round(num)表示对num进行四舍五入操作,只保留整数位,如num=0.49,返回结果为0;如num=0.51,返回结果为1; 2.将结果转化为百分比,并保留2位小数: 思路: 2.1将num1/num2的结果放大100倍; 2.2对放大结果保留2位小数。 2.3保留2位小数,需要用到Math.round(num)函数; 2.4因为Math.round(num)函数只保留整数位,所以需要至少再次放大100倍; 2.5取整后,除以再次放大的倍数,拼接上'%'即可。 举例: num1/num2=0.57823-->放大100倍:57.823-->需保留2位,至少再放大100倍:578
本文由腾讯云+社区自动同步,原文地址https://stackoverflow.club/article/use_quota_in_ubuntu/目的多用户ubuntu主机,必须设定磁盘配额,否则会被滥用,导致home目录被占满,不得不换磁盘或者扩展大小。技术路线使用quota这款软件来管理磁盘配额。设置过程安装sudoaptinstallquota复制设置挂载方式sudovim/etc/fstab复制在期望设置配额的磁盘上增加optionscat/etc/fstab复制重新挂载sudomount-a复制扫描sudoquotacheck-avug复制扫描结束后会出现这两个文件。quota服务的开启和关闭开启:sudoquotaon-vug/关闭:sudoquotaoff-vug/设置配额为用户设置配额sudoedquota-uquotauser1复制为用户组设置配额sudoedquota-gquotagroup复制复制配额sudoedquota-pmyquota1myquota2复制查看复制的配额sudoquota-vmyquota2复制查看配额用户自己查看quota复制管理员查看用户
本篇内容:1.函数的扩展;2.数组的扩展;1.函数的扩展 (1)函数参数的默认值ES6之前的版本无法为函数的参数指定默认值ES6之后可以给函数参数指定默认值,用法如下:functionlog(x,y='World'){ console.log(x,y); }复制调用结果:log('Hello')//HelloWorld log('Hello','China')//HelloChina log('Hello','')//Hello复制注意:函数参数变量是默认声明的,所以不能用let或const再次声明:functionfunc(x=5) { letx=5;//报错 constx=9;//报错 }复制参数默认值的位置:设有默认值的参数,必须放在最后一个参数的位置,如:func(x,y,z=5);如果带有默认值的参数没有放在最后面,那么会带来一些问题,作为日常使用,我认为我们只需要记住把带有默认值的参数放在最后最后一位,并严格遵守就行,至于放在前面的写法会出现何种问题,大可
版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。https://jerry.blog.csdn.net/article/details/89634198Thisissueisraisedfromonecustomer。 InOpportunitywecancreatefollowupAppointmentviathisbutton,andthetitleofsourceopportunitywillbeusedaspartofurlasanargumentforcrossapplicationnavigationservice.AndappearinthetargetcreatedAppointment:ThelogicworksinEnglishbutfailsifdescriptioncontainsGermanwords.Solution Andencode/decodelogic:FurtherreferenceReadmoreunicodecomplianceguidelinefromhere.要获取更多Jerry的原创文章,请关注公众号"汪子熙"
hive表写入数据的方式少量数据insertintocreatetabledw.dim_area_code( country_namestringcomment"国家名称", country_codestringcomment"国家代码", province_namestringcomment"省份名称", city_namestringcomment"地级市", city_area_codestringcomment"城市代码", city_zip_codestringcomment"城市邮编", county_namestringcomment"县级市、区名称", county_area_codestringcomment"县级市、区名代码", county_zip_codestringcomment"县级市、区名邮编" )STOREDasORCTBLPROPERTIES("comment&qu
读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。为什么要分库、分表、读写分?单表的数据量限制,当单表数据量到一定条数之后数据库性能会显著下降。数据多了之后,对数据库的读、写就会很多。分库减少单台数据库的压力。接触过几个分库分表的系统,都是通过主键进行散列分裤分表的。这类数据比较特殊,主键就是唯一的获取该条信息的主要途径。比如:京东的订单、财付通的交易记录等。。。该类数据的用法,就是通过订单号、交易号来查询该笔订单、交易。还有一类数据,比如用户信息,每个用户都有系统内部的一个userid,与userid对应的还有用户看到的登录名。那么如果分库分表的时候单纯通过userid进行散列分库,那么根据登录名来获取用户的信息,就无法知道该用户处于哪个数据库中。或许有朋友会说,我们可以维护一个email----userid的映射关系,根据email先查询到userid,在根据userid的分库分表规则到对应库的对应表来获取用户的记录信息。这么做是可以
1.数据表的设计MySQL数据库管理系统(DBMS)中,包含的MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。下面以大学熟悉的学生选课管理系统中用到的数据库为例,来设计相应的数据表。主要有三张表:学生表,课程表和选课表。学生表设计:字段(Field)类型(Type)可空(Null)键(Key)默认值(Default)其他(Extra)学号(studentNo)VARCHAR(12)NPRINULL姓名(name)VARCHAR(12)NNNULL学院(school)VARCHAR(12)NNNULL年级(grade)VARCHAR(12)NNNULL专业(major)VARCHAR(12)NNNULL性别(gender)BooleanNNNULL 课程表设计:字段(Field)类型(Type)可空(Null)键(Key)默认值(Default)其他(Extra)课程号(courseNo)VARCHAR(10)NPRINULL课程名(courseName)VARCHAR(10)NNNULL课时(h
大数据文摘作品,转载要求见文末编译|宁云州,范玥灿,一针几位世界级组织的领军人物,分享了几本他们接下来几周要读的书。不论你是要在南方的艳阳里大雪纷飞还是要在北方的寒夜里四季如春,都不妨借鉴下这份混合了小说、非小说、面世不久或经典旧作的书单,看看这些由大佬们悉心挑选的书,说不定能给你带来一些启发。MajidAlFuttaimHolding是一家酋长国有企业,总部位于迪拜1.《反僵化:企业转型升级新路径》(SerialInnovators:FirmsThatChangetheWorld)作者:克劳迪奥·费泽(ClaudioFeser)(中信出版社,2017;非小说)【http://as.wiley.com/WileyCDA/WileyTitle/productCd-1118149920.html】2.《离经叛道:不按常理出牌的人如何改变世界》(Originals:HowNon-ConformistsMovetheWorld)作者:亚当·格兰特(AdamGrant)(浙江大学出版社,2016;)【http://www.penguinrandomhouse.com/books/318648/o
前言回顾上一节,我们熟悉的了解了消息的请求和响应,这一节我们来建立数据库的表,表的设计蛮复杂 你也可以按自己所分析的情形结构来建表 必须非常熟悉表的结果才能运用这张表,这表表的情形涵盖比较多思维导图我这个人比较喜欢用思维导图来分析和表达一些模型:表结构根据思维导图,我们可以建立的表可以是3张表:消息表,规则表,类型表消息表:实际的消息规则表:文本、图文、语音等类型表:文本、图文、语音(默认回复,订阅回复)也可以是两张表:规制表,消息表(+一个类型字段)我这里只设计一张表:消息表(+一个规则字段+一个类型字段)设计表结构与个人的平时习惯有关系,我还是喜欢简单的东西,别为了设计而去专门设计,这样只会增加系统的复杂度CREATETABLE[dbo].[WC_MessageResponse]( [Id][varchar](50)NOTNULL,--主键 [OfficalAccountId][varchar](50)NULL,--所属公众号 [MessageRule][int]NULL,--消息规则(枚举) [Category][int]NULL,--类型(枚举) [MatchKey][varc
@目录0x00基础简述1.发展经历2.简要介绍3.系统架构Borg系统Kubernetes系统0x01组件浅析1.Kubernetes-Master2.Kubernetes-Node3.Kubernetes-插件4.本章小结 作者:WeiyiGeek 原文地址1:https://blog.weiyigeek.top/2020/4-22-468.html 原文地址2:https://www.bilibili.com/read/cv16194345 0x00基础简述 1.发展经历 描述:近些年由于Cloud云计算(公有云)以及大数据的发展促进了企业从传统转型到数字信息化再到上云,其中运维部署应用技术也从物理机转向虚拟化再转向了容器化,而又随着分布架构应用的火热,以及对业务快速迭代的的需要,便推动了如今的Kubernetes分布式架构运维平台,它实现了对容器资源的编排与控制,这也是本次学习的重中之重; #公有云类型 InfrastructureasaService(基础设施及服务):阿里云、腾讯云、百度云、京东云、GoogleCloud、AWSCloud #提供给消费者的服务是对所有计算
Redis在windows下的环境搭建 下载windows版本redis,,官方下载地址:http://redis.io/download, 不过官方没有Windows版本,官网只提供linux版本的下载,目前有个开源的托管在github上,地址:https://github.com/MicrosoftArchive/redis/tags 上面提供了两种安装方式,一种是解压版,一种是安装版; 图简单省事可以选择安装版,选择解压版为了达到和安装板一样的效果,还得自己去加环境变量,去进行各种设置。 选择安装目录,打钩会帮你添加安装路径的环境变量 选择服务开启的端口号,打钩选择让防火墙放过对这个端口的限制; 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。 Redis存在vm机制,如果打开后,在上面的情况下会把Key存放内存,Value会存放在swap区。 以
学习目标:定时器1的自由运行模式 CC2541有4个定时器,分别实现不同的功能,定时器1是一个独立的16位定时器,支持典型的定时/计数功能,比如输入捕获,输出比较和PWM功能。定时器1有5个独立的捕获/比较通道,每个通道定时器使用一个I/O引脚。 定时器1的功能如下: 五个捕获/比较通道 上升沿、下降沿或任何的边沿输入捕获 设置、清除或切换输出比较 自由运行、模或正技术/倒技术操作 可被1、8、32、128整除的时钟分频器 在每个捕获/比较和最终计数上生成中断请求 DMA触发功能 定时器包括一个16位计数器:在每个活动的时钟边沿递增或递减活动时钟边沿周期由寄存器位CLKCON.TICKSPD 定义,他设置全球系统时钟的划分,提供了从0.25到32MHz的不同的时钟标签频率,这个在定时器1中由TICTL.DIV设置的分频器值进一步划分。这个分频器值可以从1、8、32、128,因此当32MHz晶振用作系统时钟源时,定时器可以使用的最低时钟频率为32MHz/128/128=1953.125Hz。总之:定时器的定时时钟频率由CLKCON.TICKSP