Linux没有';t执行计划作业的时间晚于预定时间

Linux没有';t执行计划作业的时间晚于预定时间,linux,scheduled-tasks,crontab,cron-task,Linux,Scheduled Tasks,Crontab,Cron Task,我是Linux cron作业的初学者 要求: 记录员工的出勤情况。每天上午10点,Jar应该执行并要求登录以记录他/她的状态 Cron作业 我已经创建了一个cron作业,并放置在/etc/cron.d/,下面有一行。 0 10 * * * /home/user/Documents/attendance.sh 若系统在上午10点之前启动,则会出现登录屏幕UI,但若用户迟到并在上午10点之后启动系统,则不会显示登录屏幕UI 所以即使用户在上午10点以后登录,它也应该执行JAR 另外,请告诉我是否有

我是Linux cron作业的初学者

要求:

记录员工的出勤情况。每天上午10点,Jar应该执行并要求登录以记录他/她的状态

Cron作业

我已经创建了一个cron作业,并放置在
/etc/cron.d/
,下面有一行。

0 10 * * * /home/user/Documents/attendance.sh
若系统在上午10点之前启动,则会出现登录屏幕UI,但若用户迟到并在上午10点之后启动系统,则不会显示登录屏幕UI

所以即使用户在上午10点以后登录,它也应该执行JAR

另外,请告诉我是否有其他方法来实现这个目标。 请导游

谢谢,

安库

我想到了两个选择

1如果希望在登录时为每个用户运行
attention.sh
,可以将其添加到系统范围的登录shell rc文件中,可能是
/etc/profile

2如果有,您可以使用,它非常适合于不是一直运行的系统。您可以安排
attention.sh
每天在登录后的特定时间运行

这些替代方案的表现将有所不同1将在每次登录时运行,因此一天运行几次或几天只运行一次,具体取决于用户是否每天登录和注销、每天登录几次或下班时保持登录状态2将在用户登录的每一天运行(假设他们至少在您指定的延迟时间内保持登录)

如果您的要求更严格,可以说“对于所有登录的用户,以10运行,否则在迟到的用户登录时运行”。你可以做一些事情,但这样做需要一些额外的工作

添加了以下提问者评论


正如我在讨论12的区别时所提到的那样,1可能存在问题,如果用户不只是在工作日开始时登录,在工作日结束时注销。在我看来,您真正想要的似乎是绑定到窗口管理器中的应用程序。我没有使用窗口管理器事件触发脚本的经验,但确实可以这样做,例如。您可能需要根据您的需求和您拥有的系统类型进行一些研究。需要记住的一件事是,一个解决方案适用于那些不每天注销的用户,可能会对那些每天注销几次的用户产生适得其反的影响。解决方案2可能是解决您的问题的最简单直接的解决方案,但您可能需要更详细的解决方案来处理边缘案例,以及(可能)监控员工绩效的地方

我想到了几个选择

1如果希望在登录时为每个用户运行
attention.sh
,可以将其添加到系统范围的登录shell rc文件中,可能是
/etc/profile

2如果有,您可以使用,它非常适合于不是一直运行的系统。您可以安排
attention.sh
每天在登录后的特定时间运行

这些替代方案的表现将有所不同1将在每次登录时运行,因此一天运行几次或几天只运行一次,具体取决于用户是否每天登录和注销、每天登录几次或下班时保持登录状态2将在用户登录的每一天运行(假设他们至少在您指定的延迟时间内保持登录)

如果您的要求更严格,可以说“对于所有登录的用户,以10运行,否则在迟到的用户登录时运行”。你可以做一些事情,但这样做需要一些额外的工作

添加了以下提问者评论


正如我在讨论12的区别时所提到的那样,1可能存在问题,如果用户不只是在工作日开始时登录,在工作日结束时注销。在我看来,您真正想要的似乎是绑定到窗口管理器中的应用程序。我没有使用窗口管理器事件触发脚本的经验,但确实可以这样做,例如。您可能需要根据您的需求和您拥有的系统类型进行一些研究。需要记住的一件事是,一个解决方案适用于那些不每天注销的用户,可能会对那些每天注销几次的用户产生适得其反的影响。解决方案2可能是解决您的问题的最简单直接的解决方案,但您可能需要更详细的解决方案来处理边缘案例,以及(可能)监控员工绩效的地方

您可以使脚本每小时运行一次。脚本会检查时间,如果是10或更晚,它会检查用户今天是否登录,如果不是,它会要求用户登录。因此,您也可以记录登录时间


编辑:您可以将脚本放入/etc/cron中。每小时运行一次。脚本会检查时间,如果是10或更晚,它会检查用户今天是否登录,如果不是,它会要求用户登录。因此,您也可以记录登录时间


编辑:您可以将脚本放入/etc/cron.hourly

我认为是第一个版本,在这种情况下,如果用户打开机器,第二天来了,那么他就不会在开始工作时登录。在这种情况下,登录屏幕应弹出。这就是为什么我想每天10点执行死刑AM@AnkurRaiyani我已经扩展了我的回答,以回应你的评论。我认为第一个版本,在这种情况下,如果用户保持他的机器,并在第二天来,那么他将不会登录作为开始他的工作。在这种情况下,登录屏幕应弹出。这就是为什么我想每天10点执行死刑AM@AnkurRaiyani我扩大了我的答案以回应