Linux的at问题求解

linux为系统定义一个一次性计划任务,此任务在4月29日10:45执行修改student密码为123。

使用crontab定时任务,执行一个shell脚本修改密码。需要安装新工具expect,shell脚本中用法大概如下,要结合实际修改密码时界面提示稍做修改:
spawn passwd student
expert 'Enter password:'
send '123'
expert 'Enter password again:'
send '123'
expect eof

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/29740
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Jeff的linux环境编程第七天终结篇:学线程看这一篇就够了!
  • 除此之外, 这篇博客: 学习Linux你要是不知道这些,那你可能真的都算不上入门!中的 4.2函数库 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    4.1 静态库
    gcc/g++命令行中,需要增加一个参数:-static
    gcc 文件 -o 新文件 -static
    4.2 动态库
    默认的链接为动态链接
    gcc 文件 -o 新文件
    file命令:查看当前文件的详细信息
    ldd命令:查看一个可执行程序依赖的库文件
    在这里插入图片描述
    在这里插入图片描述

  • 您还可以看一下 良许老师的小白必会的Linux命令实例指南课程中的 学Linux能做啥?告诉你几个方向!小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    我可以使用crontab命令设置一次性计划任务,具体步骤如下:

    1. 打开终端,输入命令:crontab -e,打开cron表格编辑器;
    2. 在编辑器的末尾添加以下命令:45 10 29 4 * sudo passwd student <<< "123"; 这个命令的含义是在4月29日的10:45分使用sudo命令修改学生用户(student)的密码为"123",<<<表示把字符串"123"传递给passwd命令;
    3. 按Ctrl+s保存文件,按Ctrl+x退出编辑器;
    4. 到指定时间后,系统会自动执行该计划任务,修改该用户的密码。

    需要注意的是,为了避免自动执行任务时需要输入密码,我们需要在命令前加上sudo,并在执行命令时使用重定向符号<<<把密码传递给passwd命令。 另外,crontab命令的时间设置格式为:分钟 小时 天 月 星期,星期的范围为0~7,其中0和7均表示周日。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^