网站首页 包含标签 code 的所有文章

  • Linux如何设置定时任务

    定时任务crond Linux 可以定时执行指定的任务或程序,是一种常用工具。主要采用 crontab 命令: crontab -e # 编辑 crontab 任务 crontab -l # 查询 crontab 任务 crontab -r # 删除当前用户所有的 crontab 任务 在 crond 编辑中,可以采用如下方式编辑定时任务: * * * * * [command] 上述命令中: 第一个星号为分钟,取值为 0-59 这 60 个整数。 第二个星号为小时,取值为 0-23 这 24 个整数。 第三个星号为当月天数,取值为 1-31 这 31 个整数。 第四个星号为月份,取值为 1-12 这 12 个整数。 第五个星号为星期,取值为 0-6 这七个整数(0 为周日)。 以下是两个例子: # 每天 01 点 05 分自动关机 05 01 * * * /sbin/shutdown -h now # 每周日的 01 点 05 分自动重启 05 01 * * 0 /sbin/shutdown -r now 除使用星号代表所有值外,crontab 中还有以下符号: 逗号 , 可用于不连续时间。 横杠 - 用于表示时间范围。 斜杠 / 用于除以某个数,表示隔多久执行一次。 以下是几个示例: * * * 12 * # 每年的 12 月每一天的每一分钟都执行一次 58 5 9 * * # 每个月的 9 号 5 点 58 分执行一次 0 1,8,15,23 * * * # 每天的 1, 8, 15, 23 点整各执行一次 0 1-14 * * * # 每天 1 点到 14 点一小时执行一次 */15 * * * * # 每隔 15 分钟执行一次 单次定时计划at 与 crontab 的循环定时任务不同,at 命令用于制定一次性的定时任务。 如果系统没有 at 指令,则需要安装 sudo apt update && sudo apt install at 然后启动调度 atd 的守护进程: sudo systemctl enable --now atd 在使用 at 命令时,切记要确保 atd 在后台已经启动,可采用以下命令查询: ps -ef | grep atd ❝atd 会在每隔 60s 查询一次当前是否存在任务,若存在则执行一次,然后自动删除任务信息。❞ at 命令的使用规则如下: at [options] [runtime] 其中指定时间的方式比较复杂,甚至还有很多模糊的时间指代方式。我个人认为常用的指定时间应是这几种格式: # 指定当天具体的时间 at 16:00 # 指定某一天的具体时间 at 16:00 2023-09-21 # 指定多长时间后执行, 单位为 minutes, hours, days, weeks at now + 50 minutes at 16:00 2023-09-21 + 100 days 输入上述命令后,会进入 at 命令模式,在此输入需要执行的命令后回车,再用 Ctrl+D 完成输入并退出。例如: $ at now + 10 minutes warning: commands will be executed using /bin/sh at> ls > /home/ubuntu/mount0/test.log at> <EOT> job 5 at Thu Sep 21 17:46:00 2023 此时可以用 atq 命令来查询目前还未执行的任务。 atq # 输出以下内容 5 Thu Sep 21 17:46:00 2023 a bunian 在上述输出中,5 代表任务编号,该编号每执行一次 at 就会增加一个。a 是队列字母。 如果想要放弃还未执行的任务,则需执行以下命令即可。 atrm [任务编号] </div> ...

    2023-10-19 184
  • Linux用户和组管理的常用命令

    用 root 用户登录,首先创建一个 bunian 用户。 useradd -m bunian -m 用于创建用户主目录,默认是不创建的。此外用 -d 参数可以自定义主目录(感觉很少用)。 创建 bunian 用户的密码,该命令也可以用于修改密码。回车后可输入密码。 passwd bunian 在 Linux 中,当创建了一个用户,系统会自动为其新建一个与用户名相同的主用户组名。可用下列命令查询 bunian 用户所属组(包括主组和辅助组): groups bunian # bunian : bunian 本次将 bunian 用户改到自己所需要的用户组中。 # 新增以下组 usermod -aG adm,cdrom,sudo,dip,plugdev,lxd bunian 查询 bunian 用户和主用户组的信息。 id bunian # uid=1001(bunian) gid=1001(bunian) groups=1001(bunian),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),117(lxd) ❝uid 和 gid 是由 Linux 系统分配给每个用户和主用户组的数字,从而允许系统识别用户和用户组。 默认情况下系统会自动为新的用户按照数字顺序从 1000 开始分配 uid 和 gid。前 1000 个账户号码通常被保留给系统账户、服务和其他特殊账户。uid 和 gid 分别存储在 /etc/passwd 和 /etc/groups 目录中。❞ 上述查到的各个组的定义如下: adm # 此组的成员可以查看许多日志文件 cdrom # 此组的成员可以访问 CD-ROM 驱动器和其他光驱 sudo # 此组的成员可以使用 sudo 命令来执行需要 root 权限的命令 dip # 此组的成员可以使用 ppp 和 dip 命令来拨号和使用PPP连接 plugdev # 此组的成员可以通过 pmount 挂载和卸载可移动设备 lxd # 此组的成员可以管理 LXD 容器 此时可以切换到 bunian 用户。 su bunian 切换到 bunian 用户后发现终端只显示 $ 符号。这是因为没有设置登录 shell,导致命令默认使用 /bin/sh。使用以下命令进行修改: usermod -s /bin/bash bunian 以上 wang 用户配置完毕。但在使用 sudo 命令时,需要输入 bunian 用户的密码,相对比较麻烦。可编辑 /etc/sudoers 文件进行修改: sudo vim /etc/sudoers # 找到下列行: # Allow members of group sudo to execute any command %sudo ALL=(ALL) :ALL # 修改为: # Allow members of group sudo to execute any command %sudo ALL=(ALL) NOPASSWD:ALL 再次使用 sudo 命令无需输入密码。 如果在上述第 3 步中,没有为 bunian 用户分配为 sudo 用户组,也可以单独为 bunian 用户设置使用 sudo 命令的权限,即通过编辑 /etc/sudoers 文件进行修改: ❝ 注意由于没有为 bunian 用户分配为 sudo 用户组,因此下列命令需要在 root 用户下执行。❞ # 需要在 root 用户下执行 !!! # 新增 /etc/sudoers.d/bunian 文件并编辑 vim /etc/sudoers.d/bunian # 在文件中添加以下内容: wang ALL=(ALL) NOPASSWD:ALL 进入 authorized_keys 目录,将自己的公钥复制到目录中。以后使用私钥登录即可。 mkdir -p ~/.ssh && vim ~/.ssh/authorized_keys 在有密钥登录的前提下,可顺便将密码登录关闭。 # 修改配置文件 sudo vim /etc/ssh/sshd_config # 将以下内容进行修改 PermitRootLogin no # 关闭 root 用户直接登录 PasswordAuthentication no # 关闭密码登录 修改上述配置后重新加载 ssh: sudo systemctl reload sshd 如果要删除 bunian 用户,则在 root 用户下执行以下命令: # 删除用户 bunian, 但保留了其主目录 userdel bunian # 删除 bunian 同时删除了主目录 userdel -r bunian </div> ...

    2023-10-19 198

联系我们

在线咨询:点击这里给我发消息

QQ交流群:KirinBlog

工作日:8:00-23:00,节假日休息

扫码关注