crontab 进行 定时任务的设置
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
crontab [选项]
-e:edit,编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
重启任务调度:service crond restart
标准的 crontab 时间表达式由五个时间字段组成,格式如下:
分钟:一个小时当中的第几分钟
小时:一天当中的第几小时
日期:一个月当中的第几天
月份:一年当中的第几月
星期:一周当中的星期几
字段与字段之间使用空格分开
每个时间字段都有对应的取值范围,用来指定任务的执行时间。具体的取值范围如下:
例如,要在每天的 0 点 30 分执行一个任务,可以使用以下的 crontab 时间表达式:
30 0 * * * 命令
这个时间表达式表示在每天的 0 点 30 分执行任务。这种时间表达式就是标准的 crontab 时间格式,通过合理设置这五个字段的取值,可以精确指定任务的执行时间。
在这五个字段中,你可以使用具体的数字表示某个时间点,也可以使用特殊字符表示不同的含义:
*
:表示匹配任何值,代表任何时间。例如,
*
表示每一分钟都执行。,
:用于指定一个值列表。代表不连续的时间,例如
1,3,5
* * * * 命令:表示 1、3 和 5 分钟。-
:用于指定一个范围,代表连续的时间范围。例如
1-5 * * * *
命令:表示 1 到 5 分钟。*/n
:用于指定步长,代表每隔多久执行一次。例如
*/15
表示每 15 分钟一次。当设置 crontab 时间表达式时,逗号(,
)、连字符(-
)、以及斜杠(/
)都是常用的字符,用于指定不同的时间取值范围。以下是它们的用法示例:
逗号(,
):指定多个值
# 在每天的 1 点和 13 点执行任务
0 1,13 * * * command
这个表达式表示在每天的 1 点和 13 点执行任务。
连字符(-
):指定范围
# 在每月的 5 号到 10 号的 0 点执行任务
0 0 5-10 * * command
这个表达式表示在每月的 5 号到 10 号的 0 点执行任务。
斜杠(/
):指定步长
# 每隔两个小时执行任务
0 */2 * * * command
这个表达式表示每隔两个小时执行任务,例如在 0 点、2 点、4 点等执行。
这些符号在 crontab 时间表达式中具有很强的灵活性,能够帮助你精确地指定任务执行的时间。通过合理地组合这些符号,可以实现各种不同时间间隔的任务调度。
星期和日期最好不要同时出现,因为他们定义的都是天,非常容易让管理员混乱
设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab -e 命令
接着输入任务到调度文件
如:* * * * * ls -l /etc/ > /tmp/to.txt 意思说每小时的每分钟执行一次该命令
1、每隔1分钟,将当前的日期信息追加到/tmp/mydate文件中
crontab -e
* * * * * date >> /tmp/mydate
2、每隔1分钟,将当前的日期和日历都追加到/home/mycal文件中
3、每天凌晨2点将mysql数据库testdb,备份到文件中
crontab -e
0 2 * * * mysqldump -u root -p 密码 数据库 >> /home/db.bak
at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
ps -ef | grep atd
at [选项] [时间]
Ctrl + D 结束at命令的输入 输入两次
-m:当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
at指定时间的方法:
at
命令中指定时间的格式比较灵活,它支持多种时间表示方式,允许使用相对时间或绝对时间来指定任务执行的时间点。这些时间格式包括:
10:00PM
。示例:
at now + 1 hour
: 1小时后执行任务。at 10:00 PM tomorrow
: 明天晚上10点执行任务。at noon + 2 days
: 两天后的中午执行任务。at teatime
: 在系统定义的茶点时间执行任务。总体来说,at
命令允许使用直观和灵活的时间格式,使用户能够方便地安排任务的执行时间。
案例一:2天后的下午5点执行 /bin/ls /home
案例二:atq命令来查看系统中没有执行的工作任务
案例三:明天17点钟,输出时间到指定文件内,比如:/root/date100.log
案例四:2分钟后,输出时间到指定文件内,比如:/root/date200.log
案例五:删除已经设置的任务,atrm 编号
Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
在 Linux 中,磁盘分区和挂载是管理存储设备的重要概念。下面是关于这两个概念的详细解释:
磁盘分区(Disk Partitioning):
fdisk
、parted
、gdisk
等。Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得
挂载(Mounting):
/
, /home
, /mnt
, /media
等。mount
命令来手动挂载文件系统。可以通过 /etc/fstab
文件设置系统启动时自动挂载的文件系统。例如:
# 挂载 /dev/sdb1 到 /mnt/mydisk 目录
sudo mount /dev/sdb1 /mnt/mydisk
总体而言,磁盘分区用于划分硬盘空间,而挂载则将这些分区或外部设备的内容连接到文件系统中的特定位置,使得数据能够被访问和操作。这两个概念在 Linux 系统中对于管理和使用存储设备非常重要。
Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
对于IDE硬盘,驱动器标识符为“hdx~”
- hd:表示分区所在设备的类型,这里是指IDE硬盘
- x:为盘号
- a:基本盘
- b:基本从属盘
- c:辅助主盘
- d:辅助从属盘
- ~:代表分区
- 前4个分区用数字1到4表示,他们是主分区或扩展分区,从5开始就是逻辑分区。
hda3:表示为第一个IDE硬盘上的第三个主分区或扩展分区
hdb2:表示为第二个IDE硬盘上的第二个主分区或扩展分区
SCSI硬盘标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型,其余和IDE硬盘的表示方法一样。
命令:lsblk 或者 lsblk -f
Linux安装配置java
注意:配置java环境变量时:为 .: 表示当前路径下
Linux卸载JDK
解压安装包
tar -zxvf Python-3.6.13.tgz
进入解压后的目录
cd Python-3.6.13
配置源码
./configure --prefix=/usr/python3.6.13
编译并安装
make && make install
查看python安装目录
cd /usr/python3.6.13/
ls -l
建立新的python软链接
rm -rf /usr/bin/python
ln -s /usr/python3.6.13/bin/python3.6 /usr/bin/python
修改yum依赖
vim /usr/libexec/urlgrabber-ext-down
vim /usr/bin/yum
Linux安装配置Python3