有没有办法在我的.bashrc文件中创建一段特定的代码,只能在每周特定日期的第一次登录时执行?我已经知道使用命令替换 “$(date +%u)”会给我一个1-7的数字,对应于一周中的每一天(1表示星期一)。但是,我不希望此代码在每一次后续登录时都执行一整天。任何提示将不胜感激。提前致谢!.bashrc代码在第一次登录时每天执行1次
2
A
回答
2
您不应该将任何内容写入磁盘。
我会提取一天的命令: lastlog的-u $ USER 和 日期
然后做相应的匹配/比较。
的逻辑是这样的:
get day from date if day from date is the magic day, then get day from from lastlog -u $USER if day does not match today's day then run your command
0
date +%u | ## Generate timestamp (could be a better date-spec)
tee timestamp.tmp | ## Save a copy for later usage
cmp - timestamp || ## Fail if date-spec changed
{
## In that case, update timestamp
mv timestamp.tmp timestamp &&
## And only if that succeeds, run your code
echo "Once a day" ;
}
我宁愿碰时间戳之前运行德的命令,因为它通常是安全的不超过反复运行它运行在所有东西。 (分区可能已被重新安装为只读,磁盘可能已满,权限可能已被更改...)
1
您还可以使用所谓的“信号文件”,这样的事情:
if [[ ! -e /tmp/$(date +%u).sem ]]
then
touch /tmp/$(date +%u).sem
# Do your one-time stuff
fi
然而,接近你选择,我会建议您使用完整日期(日期+“%Y%m%d”)以避免潜在的错误,如果用户在星期一登录,并且他的下一次登录在下个星期一。
相关问题
- 1. 每天执行一次代码
- 2. Android:仅在第一次运行和每次后续升级时执行代码
- 3. 我的登录代码第一次不工作?第二次呢?
- 4. C#每30天运行一次代码
- 5. 获取当天的第一次登录
- 6. 如何在同一时间每天一次在c#服务中执行代码?
- 7. Python代码不会在第一次运行时执行
- 8. 如何仅在第一次打开konsole时运行指定的.bashrc代码
- 9. 在代码中执行代码第一次迁移?
- 10. Everyauth,第一次登录工作,第二次登录失败
- 11. “每天弹出一次”的Javascript代码
- 12. php模块 - 代码只需要执行第一次登录就像java
- 13. 号码,在过去7天登录至少一次,一天
- 14. 第一次登录时显示表格
- 15. 如何在准确时间每天执行一次动作
- 16. 第一次调用该DLL时执行代码
- 17. 第一次执行代码时颜色不正确
- 18. RxSwift代码第一次运行,第二次运行
- 19. salt stack source bashrc每次更新bashrc
- 20. 每次执行一个批处理文件用户登录
- 21. 如何在每次更改url时执行代码
- 22. 如何在第二秒每秒运行一次代码?
- 23. os.system()无法在每次第一次执行我的命令时,为什么?
- 24. 添加在第一次登录
- 25. 我想要在第一天的每个月执行一次石英?
- 26. 每10秒执行一次代码,但在0秒后启动
- 27. 每隔几秒只在setInterval函数内执行一次代码
- 28. 每5分钟运行一次cronjob,但在第一次执行后停止?
- 29. 春季安全第一次登录失败,第二次登录成功
- 30. 获取第一次和最后一次每天postgres
[用户anacron](http://osmanov-dev-notes.blogspot.nl/2010/12/anacron-for-user.html)似乎是做你想做的事情,而且多才多艺,可以做更多事情。当然,如果你只需要这一点,锁定,检查和写入日期到某个文件是一种更轻量级的方法。 – Wrikken 2013-04-22 21:44:22