15:开发Rsync服务启动脚本案例

复制代码
复制代码
[root@m01 ~]# rsn_count="ps -ef|grep 'rsync --d[a]emon'|wc -l"
[root@m01 ~]# echo ${rsn_count}
ps -ef|grep 'rsync --d[a]emon'|wc -l
[root@m01 ~]# eval ${rsn_count}
1

变量多次获取值得思路:

定义变量

每次执行的时候就执行   eval ${rsn_count}
每次获取的都是新值,

第二种思路:

一开始
 rsn_count=$(ps -ef|grep 'rsync --d[a]emon'|wc -l)

获取变量
然后再次获取的时候

执行命令ps -ef|grep 'rsync --d[a]emon'|wc -l 获取
复制代码

 

[root@m01 20171207]# cat ryn_srv.sh 

#!/bin/bash
rsn_file="/usr/bin/rsync"
# 判断启动的进程数

[ -e /etc/init.d/functions ] && source /etc/init.d/functions || echo "/etc/init.d/functions 不存在"
[ -e ${rsn_file} ] || {
    echo "${rsn_file} 服务不存在"
    exit 11
}
args1=$1

function start() {
    if [ $(ps -ef|grep "rsync --d[a]emon"|wc -l) -gt 0 ]
    then
        echo "rsync 已经启动"
    
    else 

        ${rsn_file} --daemon
        sleep 1
        [ $(ps -ef|grep "rsync --d[a]emon"|wc -l) -gt 0 ] && action "rsync 启动成功"  /bin/true || echo "启动失败"

    fi

}

function stop() {

    if [ $(ps -ef|grep "rsync --d[a]emon"|wc -l) -gt 0 ]
        then
                killall rsync
                killall rsync &>/dev/null
        sleep 1        
        [ $(ps -ef|grep "rsync --d[a]emon"|wc -l) -lt 1 ] && action "rsync  关闭成功"  /bin/true || echo "关闭失败"

        
        else 

                echo "rsync 已经关闭"


        fi

    
}

function restart() {
    stop
    sleep 2
    start
}

case $args1 in
     start)
     start
     ;;
     stop)
     
     stop
     ;;
     
     restart)
     
     restart
     ;;
     
     *)
     echo "Usage  {start|stop|restart}"
     ;;
     
esac
复制代码

 

posted @   滴滴滴  阅读(390)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示