让你的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!