休闲

shell脚本实例

江枫思渺然 提交于 2021-02-03 07:20:34
1. 写一个脚本,利用循环计算10的阶乘 #!/bin/sh factorial=1 for a in `seq 1 10` do factorial=`expr $factorial \* $a` done echo "10! = $factorial" 注:上面有一行,for a in `seq 1 10`,其中seq 1 10 , 即列出现1到10之间所有的数字,这一行也可改为:for a in "1 2 3 4 5 6 7 8 9 10" 2. 写一个脚本,执行后,打印一行提示“Please input a number:",要求用户输入数值,然 后打印出该数值,然后再次要求用户输入数值。直到用户输入 "end"停止。 #!/bin/sh unset var while [ "$var" != "end" ] do echo -n "please input a number: " read var if [ "$var" = "end" ] then break fi echo "var is $var" done 3. 写一个脚本,利用循环和continue关键字,计算100以内能被3整除的数之和 #!/bin/sh sum=0 for a in `seq 1 100` do if [ `expr $a % 3` -ne 0 ] then continue fi

Java:byte[]->Base64 String-> byte[]

和自甴很熟 提交于 2021-01-05 02:41:01
在加解密程序中,为了使加解密传递的参数使用 String 。就必须将 byte[]( 加密 )->String( 中间传递 )-> byte[]( 解密 ) 。 用传统的: retData = new String(myEncryptedData,); byte [] myData = retData .getBytes(charset); 将出现乱码: String 的 getBytes() 方法是得到一个字串的字节数组,这是众所周知的。但特别要注意的是,本方法将返回该操作系统默认的编码格式的字节数 组。如果你在使用这个方法时不考虑到这一点,你会发现在一个平台上运行良好的系统,放到另外一台机器后会产生意想不到的问题。 所以转化为 String 时,用 Base64 编码。 String str = "2b421331c747d1ec54fa5df39f0a3372" ; // 待加密数据 // 2.1 >>> 调用加密方法 byte [] encryptedData = encrypt(rawKeyData, str); //加密转换 BASE64Encoder enc = new BASE64Encoder(); //加密运算之后 将byte[]转化为base64的String String encryptedtext = enc.encode(encryptedData);

Argument list too long”错误解决方法汇总

那年仲夏 提交于 2021-01-01 07:41:46
这篇文章是回复前几天在论坛一个朋友提出的问题,今天有空,整理了一下,发布出来,供大家参考! 当Linux下试图传递太多参数给一个系统命令(ls *; cp *; rm *; cat *; etc…)时,就会出现”Argument list too long”错误。本文将提供4种解决方法,按复杂程度由低到高排列。 方法#1: 手动把命令行参数分成较小的部分 例1 mv [a-l]* ../directory2 mv [m-z]* ../directory2 这是4种方法里最简单的,但是远非理想的方法。你必须有办法平均分割文件,而且对于文件数目极多的情况,需要输入N遍命令。 方法#2: 使用find命令 例2 方法2通过find命令筛选文件列表,把符合要求的文件传递给一系列命令。 优点是find命令有很强大的筛选功能,而且,也许是最重要的,这个方法只需要1行命令。 唯一的缺点是, 方法2需要遍历文件,因此耗时较多。 方法#3: 建立函数 例3 #!/bin/bash # 设定需要删除的文件夹 RM_DIR='/data/files' cd $RM_DIR for I in `ls` do rm -f $I done 方法#4:重新编译Linux内核 最后一个方法需要2个字:谨慎,这个方法很高级,因此没有经验的linux用户最好不要尝试。此外,在永久使用前,务必在系统环境中全面测试。

“云”随我动近在咫尺

五迷三道 提交于 2020-12-19 14:12:19
上周我们接受了IT专家网的专访,就“云计算”的相关问题作了一些探讨。现在将讨论中提出的一些有趣的问题以及我们的看法摘录在这里。希望更多的朋友一起参与讨论。 云计算的发展,仍旧是大企业发挥的舞台,例如红帽(RedHat)是一家云平台提供商,亚马逊云服务提供商以及IBM这样的云基础设置供应商等等。中小企业在他们这些巨头疯狂轰炸下终于耐不住寂寞也顺势跟风,导致失败案例也不胜枚举。Eg. 阿里巴巴旗下的阿里软件(www.alisoft.com) 关闭并终止提供相关服务,并入阿里巴巴集团B2B子公司。对于阿里巴巴而言,这可能只是业务重组,但对于它们的用户而言,却带来了不同程度的时间、金钱损失。 Q1. 您是如何看待中小企业跟风云计算问题?您所在的企业是否对云计算感冒?云计算的哪些优势使您的企业觉得是时候部署云计算了? 事实上,云计算的生态中最重要的两个角色分别是云计算提供商和云计算消费者(包括应用软件提供商)。毫无疑问从技术和商业上前者注定是大企业的天下,而后者恰恰是中小企业的“蓝海”。在没有特别说明的情况下,下面我所谈到的“企业”和“应用软件提供商”属于“云计算的消费者”。我认为多数中小企业的业务量弹性比较大,而且一般都缺乏专门的预算来维护数据中心,云计算对于中小企业自然是一个不错的选择。作为自1983年起向中小型行业用户提供软件服务的应用软件提供商,我们对云计算是抱有比较积极地态度的

献给初学者:谈谈如何学习Linux操作系统

删除回忆录丶 提交于 2020-12-19 08:19:10
一、 选择适合自己的linux发行版 谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行, 面对这么多的Linux 发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux 用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需要有一个明确的方向,选择一个适合自己的系统开始学习linux至关重要!下面我们就分类介绍。 1.1 初学者入门首选-redhat系列 在学习redhat系列linux之前,首先要了解以下redhat linux各个发行版本之间的关系。 1.Red Hat Linux Red Hat Linux是redhat最早发行的个人版本的linux, 其1.0版本于1994年11月3日发行。虽然其历史不及其它linux发行版本悠久,但比起很多的Linux发行套件,Red Hat 的历史悠久得多。自从Red Hat 9.0版本发布后,RedHat 公司就不再开发桌面版的 Linux发行套件,Red Hat Linux停止了开发,而将全部力量集中在服务器版的开发上,也就是 Red Hat Enterprise Linux 版。2004年4月30日,Red Hat公司正式停止对Red Hat 9.0版本的支持,标志著Red Hat Linux的正式完结

spring配置线程池

南笙酒味 提交于 2020-11-15 18:04:11
spring提供了线程池的支持 查看基本 Java线程池 先是一个线程 ThreadTransCode.java package com.enorth.lichen.transcode; public class ThreadTransCode implements Runnable{ @Override public void run() { System.out.println( "转码开始.............."); } } 在spring配置文件中添加线程池的配置信息 < bean id ="taskExecutor" class ="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" > < property name ="corePoolSize" value ="3" /> < property name ="keepAliveSeconds" value ="200" /> < property name ="maxPoolSize" value ="5" /> < property name ="queueCapacity" value ="25" /> </ bean > 在action中添加注入 < bean id ="saveVideoAction" class ="com

浅谈Linux的内存管理机制

夙愿已清 提交于 2020-11-11 08:00:18
一 物理内存和虚拟内存 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。 作为物理内存的扩展,linux会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。 linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。 要深入了解linux内存运行机制,需要知道下面提到的几个方面: 首先,Linux系统会不时的进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么事情需要内存,Linux也会交换出暂时不用的内存页面。这可以避免等待交换所需的时间。 其次,linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存

rsync+inotify实现服务器之间文件实时同步

纵饮孤独 提交于 2019-11-30 06:38:43
之前做了“ssh信任与scp自动传输脚本”的技术文档,此方案是作为公司里备份的方法,但在实际的运行中,由于主服务器在给备份服务器传输的时候,我们的主服务器需要备份的文件是实时、不停的产生的,造成不知道主服务器给备份服务器传输了多少文件,磁盘空间就那么大,做备份的原因:一个是为了保持文件,另外一个是解决主服务器的磁盘饱满问题,但由于不知道备份服务器到底接收了多少文件,所以主服务器里的文件不敢删除(如果没有备份的情况下删除,问题就严重了,我这个是政府的项目,服务器里的文件都是重要的,删错了就走人~~~~(>_<)~~~~ ),所以我就采用了rsync+inotify的方式来实时同时服务器之间的文件,而且传输的过程是加密的,比scp安全多了(即使scp采用ssh信任,用密钥,也不是万无一失的)。 以下是我给公司运维做的备份技术文档,分享给大家,希望对大家有帮助。 先介绍一下rsync与inotify,都在在网上找的资料。先声明下面的rsync与inotify介绍不是我自己写的。 1、rsync 与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求