MY HAOSE BLOG!!!

linux条件判断:eq、ne、gt、lt、ge、le

命令简介:


条件判断:

       如果用户不存在

              添加用户,给密码并显示添加成功;

       否则

              显示如果已经没在,没有添加; 


变量名称:

       1、只能包含字母、数字和下划线,并且不能数字开头;

       2、不应该跟系统中已有的环境变量重名;

       3、最好做到见名知义;

bash中如何实现条件判断?

条件测试类型:

       整数测试

       字符测试

       文件测试

条件测试的表达式:

       [ expression ]

       ` expression `

       test expression      

整数比较:

       -eq(equal)     : 测试两个整数是否相等;比如 $A -eq $B

       -ne(inequality) 测试两个整数是否不等;不等,为真;相等,为假;

       -gt(greter than)测试一个数是否大于另一个数;大于,为真;否则,为假;

       -lt(less than)  测试一个数是否小于另一个数;小于,为真;否则,为假;

       -ge(greter equal)大于或等于

        -le(less equal) :小于或等于      

命令的间逻辑关系:

       逻辑与: &&

              第一个条件为假时,第二条件不用再判断,最终结果已经有;

              第一个条件为真时,第二条件必须得判断;

       逻辑或: ||   


4.命令实例:  

如果用户user6不存在,就添加用户user6

! id user6 && useradd user6

id user6 || useradd user6

如果/etc/inittab文件的行数大于100,就显示好大的文件;

[ `wc -l /etc/inittab | cut -d' ' -f1` -gt 100 ] && echo"Large file." 

如果用户存在,就显示用户已存在;否则,就添加此用户;

id user1 && echo "user1 exists." || useradd user1

 

如果用户不存在,就添加;否则,显示其已经存在;

! id user1 && useradd user1 || echo "user1 exists."

 

如果用户不存在,添加并且给密码;否则,显示其已经存在;

! id user1 && useradd user1 && echo "user1" |passwd --stdin user1   || echo "user1exists."



0分/0个投票

TOP


浏览: 135    评论: 0
linux 进程监控和自动重启的简单实现

目的:linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能。

实现原理:由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重启并写入日志。

1、crontab修改


  1. chen@IED_40_125_sles10sp1:~/CandyAT/Bin> crontab -e  
    */1 * * * * /home/chen/CandyAT/Bin/monitor.sh

上面的意思是每分钟调用一下脚本monitor.sh


2、monitor.sh的实现


  1. #! /bin/sh  
      
    host_dir=`echo ~`                                       # 当前用户根目录  
    proc_name="CandyGameServer"                             # 进程名  
    file_name="/Candy/log/cron.log"                         # 日志文件  
    pid=0  
      
    proc_num()                                              # 计算进程数  
    {  
        num=`ps -ef | grep $proc_name | grep -v grep | wc -l`  
        return $num  
    }  
      
    proc_id()                                               # 进程号  
    {  
        pid=`ps -ef | grep $proc_name | grep -v grep | awk '{print $2}'`  
    }  
      
    proc_num  
    number=$?  
    if [ $number -eq 0 ]                                    # 判断进程是否存在  
    then   
        cd $host_dir/CandyAT/Bin/; ./candy.sh -DZone    # 重启进程的命令,请相应修改  
        proc_id                                         # 获取新进程号  
        echo ${pid}, `date` >> $host_dir$file_name      # 将新进程号和重启时间记录  
    fi



0分/0个投票

TOP


浏览: 140    评论: 0
ssh配置免密码登录


日常工作中很多情况下都需要登录服务器进行管理,一般都是用ssh进行连接,为了防止密码外泄,可以配置下ssh的免密码登录。

首先服务器两台:

A:43.224.34.*

B:104.238.161.*

配置的结果是B机器可以免密码登录到A服务器。

root用户下,vim /etc/ssh/sshd_config修改配置文件

PubkeyAuthentication yes
RSAAuthentication yes

AuthorizedKeysFile    .ssh/authorized_keys

systemctl restart sshd


首先在B服务器上生成本机的公私密钥:

ssh-keygen -t rsa -P ''

过程为:

复制代码
[root@XX .ssh]# ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d3:81:0f:f9:6f:3e:d5:aa:ba:28:5f:a8:27:ac:70:88 root@liujianjun
The key's randomart image is:+--[ RSA 2048]----+
|                 |
|         o       |
|        + .      |
|         = .     |
|        S +    . |
| . .     o .  . .|
|E o ..  . . o. . |
|   o  +..o o. .  |
|    ...=o oooo   |
+-----------------+
[root@XX .ssh]# ls
total 20drwx------ 2 root root 4096 Oct 29 14:05 .
dr-xr-x--- 7 root root 4096 Oct 29 12:30 ..-rw------- 1 root root    0 Oct 21 09:57 authorized_keys-rw------- 1 root root 1675 Oct 29 14:05 id_rsa-rw-r--r-- 1 root root  397 Oct 29 14:05 id_rsa.pub-rw-r--r-- 1 root root  350 Oct 29 12:09 known_hosts
复制代码

操作生成了两个文件,一个是id_rsa,一个是id_rsa.pub,为了传输文件的时候出现名称冲突,把id_rsa.pub名称修改为104.238.161.*-id_rsa.pub。

scp将104.238.161.*-id_rsa.pub文件拷贝到A服务器的.ssh目录下:

scp ./104.238.161.\*-id_rsa.pub root@43.224.34.*:/root/.ssh

在A服务器的/root/.ssh目录下多了一个文件,先看下/root/.ssh目录中的authorized_keys文件的内容,开始的时候是空的,然后将拷贝过来的文件内容导入到authorized_keys中:

复制代码
[root@vultr .ssh]# cat authorized_keys 
[root@vultr .ssh]# cat ./104.238.161.\*-id_rsa.pub >> authorized_keys 
[root@vultr .ssh]# cat authorized_keys 
ssh-rsa *********QDLNuwwf7wUTg829nM2/KFqwW24WXA3OBBkX21cXlo*************pduE62NTHj5fbsgtljVlVk7y3iaIz79KDPgRQPpt779cTuB274mdWQx7g3b5c/tya/OqSTsHWU7PgMkck6RnYZGaFtxJEhZrXyq************z9JVUCToP9DOKgRQsEZFgbT5INMTh3j9o5L/LbGxILBp2vlEJfJQjR96sTumaww95dqKeEgOngpEA2tj74wlFNLQgT9RTzY0U0CWgW8DyISX2IroVqkA9IaTwvYCp9SJF4xDQbl6pzdlYkuCzpwvfc20elB6S0Z root@****[root@vultr .ssh]#
复制代码

从执行结果可以看出,已经将B的密钥导入了A的authorized_keys文件中。导入完毕之后要修改一下authorized_key文件的访问权限:

chmod 600 authorized_keys

这样配置完毕之后,在B机器就能不用密码登录到A机器了,在B机器上直接执行:ssh 43.224.34.*就能登录到A机器,如果想从A免密码登录到B,进行反向的相同的操作即可。



0分/0个投票

TOP


浏览: 144    评论: 0
«   2024年6月   »
12
3456789
10111213141516
17181920212223
24252627282930
TOP 搜索
TOP 控制面板
您好,欢迎到访网站!
  [查看权限]
TOP 网站分类
TOP 热门评分
TOP 最高评分
TOP 最新评分
TOP 你好,朋友
真是美好的一天!
TOP 站点信息
  • 文章总数:5538
  • 页面总数:3
  • 分类总数:4
  • 标签总数:6
  • 评论总数:36
  • 浏览总数:8187975
返回顶部
haose888
返回顶部