让你的shell脚本有类似注册码功能
为什么写这篇文章呢?有时候当你一个shell脚本有你敏感信息,或者你想让这个shell脚本有一个使用期限,那么你可以看看下面的教程.
系统:centos 7.x
服务端脚本:
cat /root/soft_shell/my_server_key.sh
#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin export PATH # Check if user is root if [ $(id -u) != "0" ]; then echo "Error: You must be root to run this script, please use root to initialization OS." exit 1 fi time=`date +%Y%m%d` key=`echo -n $(($time*3+43211234))|md5sum|cut -d ' ' -f1` file="/data/www/vhosts/blog.slogra.com/tool/key.html" echo $key > $file
ps:
最关键是key那行,你们可以按照自己喜好改.记得把服务端shell脚本加入crontab里,不然客户端脚本无法获取到正确的key就会无法执行.
客户端示例脚本内容:
#!/bin/bash time=`date +%Y%m%d` result=`curl -sS -L https://blog.slogra.com/tool/key.html` key=`echo -n $(($time*3+43211234))|md5sum|cut -d ' ' -f1` if [[ $result != $key ]];then exit 0 fi mount_dir="/data" mkdir $mount_dir echo -e "n\np\n1\n\n\nw" |fdisk /dev/vdb && mkfs.ext4 /dev/vdb1 && fdisk /dev/vdb -l uuid=`blkid /dev/vdb1|awk '{print $2}'|sed s/\"//g` echo "$uuid $mount_dir ext4 defaults 1 1" >> /etc/fstab mount -a df -h
最后自己对客户端脚本进行加密下就可以了,最后如果你们不想每次执行脚本的时候都去对比下key的话,可以修改成每天只对比一次.
夜空 <Loved it!