shell脚本基本IF条件判断和判断条件总结

2015-4-30 杜世伟 Linux

1、基本语法:
if [ command ]; then
符合该条件执行的语句
fi
2、扩展语法:
if [ command ];then
符合该条件执行的语句
elif [ command ];then
符合该条件执行的语句
else
符合该条件执行的语句
fi

3、语法说明:
bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语句,否则后面的命令不执行,跳到下一条命令。
当有多个嵌套时,只有第一个返回0退出状态的命令会导致符合该条件执行的语句部分被执行,如果所有的语句的执行状态都不为0,则执行else中语句。
返回状态:最后一个命令的退出状态,或者当没有条件是真的话为0。

阅读全文>>

标签: linux shell

评论(0) 浏览(15233)

linux find 统计目录下信息

2015-4-17 杜世伟 Linux

linux find 目录统计下信息

linux 环境下通过find命令对目录下信息进行统计

1.统计/data/www-data目录下,php文件数量:
find /data/www-data/ -name "*.php" |wc -l
2.统计demo目录下所有php文件代码行数:
find /data/www-data/ -name "*.php" |xargs cat|wc -l 或 wc -l `find ./ -name "*.php"`|tail -n1
3.统计/data/www-data/目录下所有php文件代码行数,过滤了空行:

find /data/www-data/ -name "*.php" |xargs cat|grep -v ^$|wc -l

转载标明来源!

阅读全文>>

标签: linux find

评论(0) 浏览(9976)

linux pssh 安装和使用方法

2015-1-18 杜世伟 Linux

pssh命令是一个python编写可以在多台服务器上执行命令的轻量运维工具,同时支持拷贝文件,是同类工具中很出色的,
类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问。

#pssh 安装
1)yum方法
yum install pssh
2)编译安装

wget https://pypi.python.org/packages/60/9a/8035af3a7d3d1617ae2c7c174efa4f154e5bf9c2

4b36b623413b38be8e4a/pssh-2.3.1.tar.gz

tar xzvf pssh-2.3.1.tar.gz
cd pssh-2.3.1
python setup.py install



#创建将要连接的服务器列表,如果连接的服务器的端口号是22后面的端口号可以不填写(默认端口号:22)
cat > hosts.txt <<EOF
root@192.168.111.132:22
root@192.168.111.134:22
root@192.168.111.135:22
EOF

使用下命令之前,要确保当前服务器和将要连接的服务器列表已添加SSH信任,

阅读全文>>

标签: linux pssh prsync pslurp pnuke

评论(0) 浏览(7652)

error: too many open files

2015-1-17 杜世伟 Linux

linux 默认值 open files 和 max user processes 为 1024

#ulimit -n

1024

#ulimit –u

1024

问题描述: 说明 server 只允许同时打开 1024 个文件,处理 1024 个用户进程

使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。

新装的linux 默认只有1024 ,当作负载较大的服务器时,很容易遇到error: too many open files 。因此,需要将其改大。

阅读全文>>

标签: linux ulimit

评论(0) 浏览(7931)

linux下快速删除大量文件

2015-1-15 杜世伟 Linux

假如你要在linux下删除大量文件,比如100万、1000万,像/var/spool/clientmqueue/的mail邮件, 

像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf *可能就不好使了。 
rsync提供了一些跟删除相关的参数 
rsync --help | grep delete 
     --del                   an alias for --delete-during 
     --delete                delete files that don't exist on the sending side 
     --delete-before         receiver deletes before transfer (default) 
     --delete-during         receiver deletes during transfer, not before 
     --delete-after          receiver deletes after transfer, not before 
     --delete-excluded       also delete excluded files on the receiving side 
     --ignore-errors         delete even if there are I/O errors 
     --max-delete=NUM        don't delete more than NUM files 

阅读全文>>

标签: linux rsync

评论(0) 浏览(4533)

linux 快速复制大量小文件主要使用先打包再复制的方法

2015-1-15 杜世伟 Linux

快速复制大量小文件主要使用先打包再复制的方法:
find . -name '*.txt' -print > output.txt

tar --help

 -T, --files-from F
          get names to extract or create from file F注意这里不要加 -v参数啦,对于大量文件,控制台输出是很浪费时间的...

tar -czf output.tar.gz -T yourfile

阅读全文>>

标签: linux tar find

评论(0) 浏览(6915)

Linux 下 Make 命令

2014-10-25 杜世伟 Linux

Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一。管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题。本文我们将用一些实例来讨论 make 命令背后的工作机制。

Make 如何工作的
对于不知道背后机理的人来说,make 命令像命令行参数一样接收目标。这些目标通常存放在以 “Makefile” 来命名的特殊文件中,同时文件也包含与目标相对应的操作。更多信息,阅读关于 Makefiles 如何工作的系列文章。

当 make 命令第一次执行时,它扫描 Makefile 找到目标以及其依赖。如果这些依赖自身也是目标,继续为这些依赖扫描 Makefile 建立其依赖关系,然后编译它们。一旦主依赖编译之后,然后就编译主目标(这是通过 make 命令传入的)。

现在,假设你对某个源文件进行了修改,你再次执行 make 命令,它将只编译与该源文件相关的目标文件,因此,编译完最终的可执行文件节省了大量的时间。

阅读全文>>

标签: linux make

评论(0) 浏览(8455)

Linux 防火墙开放特定端口

2014-9-24 杜世伟 Linux

iptables是linux下的防火墙,同时也是服务名称。


service  iptables  status        查看防火墙状态
service  iptables  start           开启防火墙
service  iptables  stop           关闭防火墙
service  iptables  restart        重启防火墙

阅读全文>>

标签: linux iptables

评论(0) 浏览(3506)

yum groupinstall 与 yum install 的区别

2014-9-19 杜世伟 Linux

yum 提供二种安装软件的方式

1,yum install 它安装单个软件,以及这个软件的依赖关系

2,yum groupinstall 它安装一个安装包,这个安装包包涵了很多单个软件,以及单个软件的依赖关系。

阅读全文>>

标签: linux yum install groupinstall

评论(0) 浏览(3431)

用Linux命令行生成随机密码的十种方法

2014-6-7 杜世伟 Linux

用Linux命令行生成随机密码的十种方法

1、这种方法使用SHA算法来加密日期,并输出结果的前32个字符:

date +%s | sha256sum | base64 | head -c 32 ; echo
2、这种方法使用内嵌的/dev/urandom,并过滤掉那些日常不怎么使用的字符。这里也只输出结果的前32个字符:

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;
3、 这种方法使用openssl的随机函数。如果你的系统也许没有安装openssl,你可以尝试其它九种方法或自己安装openssl。

openssl rand -base64 32
4、 这种方法类似于之前的urandom,但它是反向工作的。Bash的功能是非常强大的!

阅读全文>>

标签: linux openssl passwd sha

评论(0) 浏览(18606)

Powered by emlog 沪ICP备2023034538号-1