导航:首页 > 操作系统 > linux定时网页

linux定时网页

发布时间:2023-03-13 19:15:03

1. 如何设置linux系统的定时任务

linux怎么设置定时任务呢,下面就让我们来看看吧。
1、在终端窗口中输入systemctlstatus命令查看atd服务是否开启。
2、输入date命令查看当前的时间。
3、输入at+时间命令进行定时,at命令后面跟的是时分。
4、输入mkdir/root/linux1609命令,回车列出要执行任务。
5、按Ctrl+V组合键终止当前的定时任务设置。
6、输入at+l命令,回车查看当前已经存在的任务。
以上就是小编的分享,希望能帮助的大家。

2. Linux设置定时任务

《使用PSSH批量管理Linux》 一文中,已经学习了使用pssh批量管理linux的技巧。而很多时候,我们需要定时执行一些任务,或者需要定时执行一些批量任务。因此,本文就来研究一下linux设置定时任务的方法。

主要参考 Linux Crontab 定时任务 、 Linux定时任务Crontab命令详解 和 Linux 定时任务详解 。

cron(crond)是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。linux系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。另外,由于使用者自己也可以设置计划任务,所以,linux系统也提供了使用者控制计划任务的命令:crontab命令。

crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

linux下的任务调度分为两类,系统任务调度和用户任务调度。

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。 /etc/crontab 文件就是系统任务调度的配置文件。

用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在 /var/spool/cron/crontabs/ 目录中,其文件名与用户名一致。

假设我们使用的是Ubuntu14.04.5 Server版,查看 /etc/crontab ,内容为:

第一行SHELL变量指定了系统要使用哪个shell;第二行PATH变量指定了系统执行 命令的路径。
接下来的命令格式为:
m h dom mon dow user command
英文全拼为:
minute hour day month week user commond

注意, /var/spool/cron 目录中的用户调度任务,没有user一项,因为文件名已经代表了user。

在以上各个字段中,还可以使用以下特殊字符:

crontab命令格式为:
crontab [-u username] [file] [ -e | -l | -r ]

设置定时任务和时间紧密相关,如果服务器的时区时间设置和本地不同,就不能保证计划任务的正确执行。所以使用crontab的第一步,是调节好服务器的时间。

下面参考 Ubuntu 16.04将系统时间写入到硬件时间BIOS ,对服务器时间进行调节。

时间是有时区的,无论硬件时间还是操作系统时间。hwclock的时区在/etc/default/rcS文件中设置,里面有一个参数UTC,默认值为yes,表示使用UTC时区,如果设置为no,那表示使用osclock的时区。建议hwclock与osclock设置相同的时区,也就是no。

1、查看服务器硬件时间
sudo hwclock -r ,看到的时间格式为: Wed 23 May 2018 11:02:17 AM HKT -0.031663 seconds

2、查看服务器系统时间
date ,看到的时间格式为: Wed May 23 11:02:41 HKT 2018

3、设置hwclock和osclock时区相同
sudo vim /etc/default/rcS ,找到:

修改为:

4、将系统时间写入硬件时间
sudo hwclock -w

5、修改系统时区
osclock的时区配置文件为/etc/timezone,不建议直接修改配置文件。

如果你想修改为CST时间,那么执行 sudo tzselect 命令时,选择Asia->China->Beijing Time即可,这时会提示使用Asia/Shanghai时区。(ubuntu和centos通用)

6、设置即刻生效
执行 date ,发现时区没有变化,依然是HKT。

sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sudo ntpdate time.windows.com

如果执行ntpdate报错:ntpdate[18409]: no server suitable for synchronization found ,那么就换一个时间同步工具。
sudo apt-get install rdate
sudo rdate -s time-b.nist.gov

再次执行 date ,发现时区已经变成了CST。

7、硬件时间同步
sudo hwclock -r ,发现硬件时间落后。
sudo hwclock -w ,再次把系统时间写入硬件时间,同步完成。

实例1:每分钟、每小时、每天、每周、每月、每年执行

实例2:每小时的第3和第15分钟执行
3,15 * * * * myCommand

实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand

实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand

实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand

实例6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart

实例8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart

实例10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart

实例11:每一小时重启smb
0 * * * * /etc/init.d/smb restart

实例12:晚上11点到早上7点之间,每隔一小时重启smb
0 23-7/1 * * * /etc/init.d/smb restart

实例13:每月的4号与每周一到周三的11点重启smb
0 11 4 * mon-wed /etc/init.d/smb restart

实例14:一月一号的4点重启smb
0 4 1 jan * /etc/init.d/smb restart

实例15:每小时执行/etc/cron.hourly目录内的脚本
01 * * * * root run-parts /etc/cron.hourly
run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了。

目标:每分钟查看一下ganglia的状态,并保存到/tmp/log/ganglia目录。

1、创建/tmp/log/ganglia目录
sudo mkdir -p /tmp/log/ganglia

sudo chmod a+w /tmp/log/ganglia

2、编辑crontab
crontab -e ,选择编辑器为vim

3、在crontab文件中添加一行

4、查看crontab任务
crontab -l ,看到任务已经添加成功。

5、等待了五分钟,发现/tmp/log/ganglia目录下啥也没有。
sudo service cron status ,状态正常。
sudo /etc/init.d/cron restart ,重启cron试试。
又等待了五分钟,发现/tmp/log/ganglia目录下依然空空。

莫非是因为pssh没有使用绝对路径? whereis pssh ,找到pssh路径为 /usr/lib/pssh ,修改crontab为:

然而,并没有用。
还是查看下crontab日志吧!

以下主要参考 Ubuntu下用crontab 部署定时任务 。

1、编辑50-default.conf
sudo vim /etc/rsyslog.d/50-default.conf

2、把cron前的井号去掉,也就是修改为:

3、重启rsyslog服务
sudo service rsyslog restart

4、重启crontab服务
sudo service cron restart

5、查看crontab日志
less /var/log/cron.log

果然发现了问题:

也就是说,命令确实按时执行了,只不过没有执行完,被百分号截断了,导致log文件没有正常生成!

修改crontab为:

终于,log文件成功生成,nice!但是,文件内容是空的!因为, /usr/lib/pssh 是一个目录,不是pssh命令!真正的pssh命令是parallel-ssh,找到它的位置为 /usr/bin/parallel-ssh ,修改crontab:

至此,问题圆满解决。
实际使用的时候,一天获取一次ganglia的状态就够了,所以crontab改成:

以上,每天执行一次定时任务,抓取ganglia的运行状态保存到日志文件中。紧接着,我们的目标是使用脚本检查当天的日志文件,如果发现ganglia运行异常,则产生一个错误日志。

1、假设日志文件ganglia-20180524.log的内容为:

2、参考 grep命令最经常使用的功能总结 ,编写脚本checkganglia.sh

3、执行
chmod a+x checkganglia.sh

./checkganglia.sh

如果所有客户机的ganglia运行正常,就会输出All services are runing!。如果有的客户机ganglia进程不存在,则会在/tmp/log/ganglia/目录下生成当天的错误日志。

4、设置定时运行
因为日志的检查工作要在日志生成之后,所以时间上延后十分钟。

上面的脚本,还有很多要改进的地方。比如有的客户机宕机了,上面的脚本检查不出来。比如有的客户机ganglia服务没有启动,那么具体是哪几台?针对这两个问题,下面进行改进。假设已经知道客户机的数量为10。

参考 csplit命令 ,checkganglia.sh脚本修改为:

以上脚本,实现了当客户机数量不为10的时候,进行报错;当客户机ganglia服务没有启动时,进行报错,并且筛选出所有没有启动ganglia的客户机。

本文中,我们先学习了crontab的基础知识和基本用法。然后通过监控ganglia这一个应用场景来具体学习crontab的详细使用方法,包括查看cron日志的方法,crontab中命令转义的方法,定时执行脚本的方法,以及审阅日志脚本的编写和进阶。

至此,还不够完美,因为我们需要每天登录管理机查看有没有错误日志。下一篇 Linux设置邮件提醒 中,我们将会研究linux设置邮件提醒的方法。审阅完日志后,如果脚本能够给我们发送一封邮件,告知我们审阅的结果,那么我们就不必再每天查看错误日志。

3. 如何在linux下实现自动刷新网页的脚本

楼主,你这个问题似乎有点怪异。跨站脚本调用很累的。而且这种代码的讲解并不多。

建议你这个 ASP 网页嵌入一个 Linux 机器上面的网页。这个 Linux 机器跑 apache 运行 PHP 网页后调用这个脚本。
不过这样操作会很不安全。因为 Linux 端执行你这个命令也需要权限的。浏览者会看到这个访问页面,很容易让人猜到关键数据的位置。
其次也可以用 ASP 代码的 http 访问相关函数来直接访问 Linux 机器的网页接口,这个安全一些因为可以设置浏览者看不到的密码。

其次还可以用一些其他的手段,在 ASP 所在的机器上运行某个程序来自动连接到 Linux 主机的远程控制端口运行命令,或者 ASP 直接编写出访问 Linux 控制端的代码。但这个就要找专业人士了。
------------------------
哦,明白你的意思了。

这个是小菜一碟的。不过 MySQL 一般禁止 root 远程访问的,这样可以保证一定的安全。你在本地可以直接用客户端程序访问 mySQL 服务器上的数据库的。ASP 代码直接运行本地程序直接访问远程数据库即可。

不过似乎 mysql 这个命令没有远程访问的功能(至少我没找到,有一次着急导入数据就是没招特郁闷……)
用第三方的软件吧。

如果还是选择运行 Linux 上的脚本,那就需要 Linux 再开一个可以运行命令的服务了。

阅读全文

与linux定时网页相关的资料

热点内容
gcc编译消耗内存过多 浏览:279
昌邑网站制作源码 浏览:127
单片机的反向编译 浏览:463
subsample算法 浏览:899
苹果免费看书app哪个最好 浏览:885
c语言加密怎么弄 浏览:842
c语言编译的错误提示 浏览:767
验机苹果app哪个最好 浏览:666
光遇国际服安卓如何购买礼包 浏览:55
163app怎么下载 浏览:247
电脑程序员下场 浏览:45
编译原理ll1文法判断 浏览:727
qt用vs2015编译 浏览:553
结婚日子最好的算法 浏览:794
安卓怎么把数据传到苹果里 浏览:504
编译器标识 浏览:792
编程珠玑第三章 浏览:785
windows如何开启tftp服务器 浏览:110
欧姆龙plc编程指令表 浏览:189
程序员远程收入不稳定 浏览:863