我每个月都需要运行玉米工作来更新软件许可证。
许可证已在远程服务器上的文本文件中准备就绪(例如:http://codebox.ir/soft/license.txt)并每月更新。
license.txt内容示例" tev3vv5-v343"。
我想获取许可证并输入一些命令:
# update xxxx-xxxx
我该怎么做?
答案 0 :(得分:2)
编写一个从远程服务器
获取文件的脚本wget http://codebox.ir/soft/license.txt
然后从该文本文件中获取密钥并将其传递到updatecommand
update `cat license.txt`
注意Backticks,所以你的脚本看起来像这样
#!/bin/sh
#
# This script fetches and updates the licensefile
#
wget http://codebox.ir/soft/license.txt;
update `cat license.txt`;
使文件可执行
chmod +x updateLicense.sh
并将其放入您的crontab
cd /path/to/script;./updateLicense.sh
或保持紧凑,尽管我会先检查文件是否符合预期的格式。
#!/bin/sh
#
# This script fetches and updates the licensefile
#
update `wget http://codebox.ir/soft/license.txt`;
并检查fetch是否成功
#!/bin/sh
#
# This script fetches and updates the licensefile
#
URL = http://codebox.ir/soft/license.txt
wget_output=$(wget -q "$URL")
if [ $? -ne 0 ]; then
update $wget_output
fi
不,你可以进一步发展,我建议在更新之前检查密钥的格式
#!/bin/sh
#
# This script fetches and updates the licensefile
#
# Define URL
URL = http://codebox.ir/soft/license.txt
# Fetch content
wget_output=$(wget -q "$URL")
# Check if fetch suceeded $? is the returnvalue of wget in this case
if [ $? -ne 0 ]; then
# Use mad Regexskillz to check format of licensekey and update if matched
if [[ $wget_output == [a-z0-9]+-[a-z0-9]+ ]] ; then update $wget_output; fi
fi
我还会返回一些值以进一步提高脚本的质量,同时我也会将url和正则表达式传递给函数以保持脚本可重用,但这是一个品味问题<\ n / p>