有时出于安全考虑,可以添加一个SSH登录提醒功能,当用户登录SSH后收到提醒。
提醒功能可以通过邮件或其它功能发送,俺使用的是一个iOS使用“推送信使”提供了URL回调接口,设置好参数后用curl请求一下,一条报警信息就推送到手机。
user=$USER
ip=${SSH_CLIENT%% *}
date=$(date "+%Y-%m-%d_%H:%M")
title="用户$user登录了系统"
content="时间:${date}%0dIP地址:$ip"
app="SSH监控"
url="http://whois.pconline.com.cn/ip.jsp?ip=$ip"
pushMessage() {
params="uid=1&secret=6Y2FN7&app=$app&title=$title&content=$content&slient=1&url=$url"
url="http://ipush.me/api-push?$params"
curl --connect-timeout 3 -m 3 -s $url
}
pushMessage
为了解决这个问题,整整调试了一个多星期。对照教程一遍又一遍的测试,一直以为问题出现在代码上。结果是因为iphone越狱过引起的,刚刚还原到官方版本后,没有问题了。
以前有看到网友提过可能是越狱引起的,由于懒得刷回官方版本(主要想越狱后用手势插件)完成测试后再越狱,随便找了几个流行的程序点击In-App Purchases功能进行测试,都能正常弹出支付对话框,由此判断是自己代码问题。结果……
如果手机没有越狱,一样返回invalid product identifiers,那么可以参照下面这个列表对照看有没有什么步骤漏掉了。
可能造成返回invalid product identifiers的原因列表:
http://troybrant.net/blog/2010/01/invalid-product-ids/
解决方法:
XCode -> Preferences -> Debugging -> Symbol Lazy Options 把勾选选项"load symbol lazily"去掉,再重新设置断点就可以调试了。