Linux常见系统错误

常见系统错误

Linux联网失败解决方法

sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service network-manager start
sudo gedit /etc/NetworkManager/NetworkManager.conf
(把false改成true)
sudo service network-manager restart

/root文件夹误删除

/root文件夹误删除执行以下命令cp -a /etc/skel/.[!.]* /root

crontab命令使用

简介

linux下面定期分为二部分,一部分是后台程序crond,一部分是crontab往crond输入指令的接口。

crontab 命令用于安装、删除或者列出用于驱动cron后台进程的表格。也就是说,用户把需要执行的命令序列放到crontab文件中以获得执行,每个用户都可以有自己的crontab文件。
利用crontab编写shell脚本程序,定时执行php相关程序。在这个过程中,经常使用到的crontab命令如下:

(root权限下)

crontab启动:/etc/init.d/cron start ( service cron start )

crontab重启: /etc/init.d/cron restart (service cron restart )

crontab关闭: /etc/init.d/cron stop ( service cron stop )

或者

1)service cron start /启动服务/

2)service cron stop /关闭服务/

3)service cron restart / 重启服务/

4)service cron reload /重新载入配置/

在终端中,可以利用 ps -aux|grep cron查询crontab状态,默认情况下,是自启动的。

安装cron

buntu安装cron

安装:apt-get install cron
启动:service cron start
重启:service cron restart
停止:service cron stop
重新载入配置 : service cron reload
检查状态:service cron status
查看crontab服务状态 : service cron status
查询cron可用的命令:service cron
检查Cronta工具是否安装:crontab -l

centOS安装:
(1)vixie-cron 软件包是 cron 的主程序;
(2)crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

yum install vixie-cron
yum install crontabs

在CentOS系统中加入开机自动启动:
chkconfig --level 345 crond on

crontab命令常见用法

1)crontab -u /设定某个用户的cron服务/
2)crontab -l /列出某个用户cron服务的详细内容/
3)crontab -r /删除某个用户的cron服务/
4)crontab -e /编辑某个用户的cron服务/
5)crontab -r 使用下面的命令移除已经计划的cron作业

  1. crontab -ir 使用下面的命令移除所有已计划的cron作业,且无需再次确认。
  2. crontab -l -u jp //列出用户jp的所有调度任务

分钟 小时 天 月 天每星期 命令
每个字段代表的含义及取值范围如下:
Minute :分钟(0-59),表示每个小时的第几分钟执行该任务
Hour : 小时(1-23),表示每天的第几个小时执行该任务
Day : 日期(1-31),表示每月的第几天执行该任务
Month : 月份(1-12),表示每年的第几个月执行该任务
DayOfWeek : 星期(0-6,0代表星期天),表示每周的第几天执行该任务
Command : 指定要执行的命令(如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径)]

30 5 * * * ls /指定每天的 5:30 执行ls命令/
30 7 8 * * ls /指定每月8号的7:30分执行ls命令/
50 7 * * * root run-parts /etc/cron.daily /每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件/

每隔一分钟执行一次任务 * * * * *
每五分钟执行 */5 * * * *

每小时的0点执行一次任务,比如6:00,10:00 0 * * * *

每天执行 0 0 * * *

每周执行 0 0 * * 0

每月执行 0 0 1 * *

每年执行 0 0 1 1 *

每分钟执行一次 * * * * * user command

每隔2小时执行一次 * */2 * * * user command (/表示频率)
每个月2号,每小时的6分和10分执行一次任务 6,10 * 2 * *
每天8:30分执行一次 30 8 * * * user command

每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06 /3,/5 * * * *

每小时的30和50分各执行一次 30,50 * * * * user command(,表示并列)

每个月的3号到6号的8:30执行一次 30 8 3-6 * * user command (-表示范围)

每个星期一的8:30执行一次 30 8 * * 1 user command(周的范围为0-7,0和7代表周日)

Ubuntu cron 定时执行任务

ununtu 通过调用 run-parts 命令,定时运行四个目录下的所有脚本。
1)/etc/cron.hourly,目录下的脚本会每个小时让执行一次,在每小时的2分钟时运行;
2)/etc/cron.daily,目录下的脚本会每天让执行一次,在每天0点17分时运行;
3)/etc/cron.weekly,目录下的脚本会每周让执行一次,在每周第七天的3点56分时运行;
4)/etc/cron.mouthly,目录下的脚本会每月让执行一次,在每月19号的5点32分时运行;
当然,以上的时间均是系统默认时间,可以根据自己的需求进行修改

(系统级的)做系统级配置我们会直接配置 /etc/crontab

(用户级的)一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。

使用

第一次进入的时候要选择编辑器,选择后你可以配置新cron作业了,一般是选3

crontab -e

img

1.Ctrl+O 写入

2.出现“FIile name to Write…”,输入Enter

3.Ctrl+x 保存输出

提示“crontab:installing new crontab”表示成功。

注意 :
1、crond守护进程是在系统启动时由init进程启动的,受init进程的监视,如果它不存在了,会被init进程重新启动。这个守护进程每分钟唤醒一次,并通过检查crontab文件判断需要做什么。

2、每个用户有一个以用户名命名的crontab文件,存放在/var/spool/cron/crontabs目录里。若管理员允许或者禁止其他用户拥有crontab文件,则应编辑/etc/下面的cron.deny和cron.allow这两个文件来禁止或允许用户拥有自己的crontab文件。每一个用户都可以有自己的crontab文件,但在一个较大的系统中,系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件。
例子 :

0 0 10,14,16 * * 每天上午10点,下午2点,4点触发

0 0/30 9-17 * * 朝九晚五工作时间内每半小时触发

0 0 12 ? * WED 表示每个星期三中午12点触发

0 0 12 * * 每天中午12点触发

0 15 10 ? * * 每天上午10:15触发

0 15 10 * * 每天上午10:15触发

0 15 10 * * 每天上午10:15触发

0 * 14 * * 在每天下午2点到下午2:59期间的每1分钟触发

0 0/5 14 * * 在每天下午2点到下午2:55期间的每5分钟触发

0 0/5 14,18 * * 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

0 0-5 14 * * 在每天下午2点到下午2:05期间的每1分钟触发

0 10,44 14 * 3 WED 每年三月的星期三的下午2:10和2:44触发

0 15 10 ? * MON-FRI 周一至周五的上午10:15触发

0 15 10 15 * * 每月15日上午10:15触发

0 15 10 L * * 每月最后一日的上午10:15触发
15,30,45,59 * * * * echo “xgmtest…” 表示,每隔15分钟,执行一次打印命令

案例 :
1、直接执行命令行,比如每隔1分钟执行date命令并将结果保存至文件/tmp/testCron.txt中,cron 格式如下:

*/1 * * * * date >> /tmp/testCron.txt

2、设定定时任务
每个星期6凌晨3点重启gitlab container

0 3 × × 6 lxc restart gitlab

3、首先创建一个定时任务:每分钟向屏幕输出"Hello world!"。
有两种实现方式:
1)输入crontab -e命令,根据提示直接在当前cron task文本最后面插入如下命令(记得回车):

* * * * * echo "Hello world!"

4、每天早上6点

0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

每两个小时(第一个为15,指明没两个小时的第15min中执行一次)

15 */2 * * * echo "Have a break now." >> /tmp/test.txt 

晚上11点到早上8点之间每两个小时和早上八点

0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3 command line

1月1日早上4点

0 4 1 1 * command line

每小时(第一分钟)执行/etc/cron.hourly内的脚本

01 * * * * root run-parts /etc/cron.hourly

每天(凌晨4:02)执行/etc/cron.daily内的脚本

02 4 * * * root run-parts /etc/cron.daily

每星期(周日凌晨4:22)执行/etc/cron.weekly内的脚本

22 4 * * 0 root run-parts /etc/cron.weekly

每月(1号凌晨4:42)去执行/etc/cron.monthly内的脚本

42 4 1 * * root run-parts /etc/cron.monthly

注意: "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名。

每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。

5,15,25,35,45,55 16,17,18 * * * command

每周一,三,五的下午3:00系统进入维护状态,重新启动系统。

00 15 * *1,3,5 shutdown -r +5

每小时的10分,40分执行用户目录下的innd/bbslin这个指令:

10,40 * * * * innd/bbslink

每小时的1分执行用户目录下的bin/account这个指令:

1 * * * * bin/account

每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔):

203 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st) 

每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。

12,553 4-91,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt

5、每两个小时重启一次apache

 0 */2 * * * /sbin/service httpd restart

6、每天7:50开启ssh服务

 50 7 * * * /sbin/service sshd start

7、每天22:50关闭ssh服务

50 22 * * * /sbin/service sshd stop 

8、每月1号和15号检查/home 磁盘

0 0 1,15 * * fsck /home 

9、每小时的第一分执行 /home/bruce/backup这个文件

 1 * * * * /home/bruce/backup 

10、每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。

00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 

11、每月的1、11、21、31日是的6:30执行一次ls命令

30 6 */10 * * ls 

重启cron 服务

#service cron restart

扩展

crond启动

crond不同的系统下面启动不同,以archlinux为例
1、crond启动

[root@BlackGhost ~]# crond

2、crond开机启动
a,利用rc.conf

DAEMONS=
(syslog-ng alsa hal net-profiles httpd !
slim @mysqld !network !netfs **crond**
)

b,利用rc.local

在文件的最后加上sudo crond

crontab命令详解
[root@BlackGhost etc]# crontab -hcrontab V3.2crontab file <opts>  replace crontab from file   //修改文件存放位置
crontab -    <opts>  replace crontab from stdincrontab -u user      specify user //指定用户
crontab -l [user]    list crontab for user // 查看命令列表
crontab -e [user]    edit 
crontab for user //编辑列表
crontab -d [user]    
delete crontab for user //删除列表
crontab -c dir       specify crontab directory //指定crontab 目录
crontab命令详解
crontab file 指定命令存放

archlinux下面默认crontab命令存放在是在/var/spool/cron/下面,以用户名来命名文件的

[root@Blocalhost etc]# ls /var/spool/cron
root  zhangy

如果我想换个位置怎么办呢,看下面

1. [root@BlackGhost etc]# cp /**var**/spool/cron/root /tmp/root 

2. [root@BlackGhost etc]# crontab /tmp/root    //修改文件存放位置 

3. [root@BlackGhost etc]# crontab -l 

4. #DO NOT EDIT THIS FILE MANUALLY!! USE crontab -e INSTEAD. 

5. # <minute> <hour> <day> <month> <dow> <command> 

6. 01 * * * *  /usr/sbin/run-cron /etc/cron.hourly 

7. 02 00 * * * /usr/sbin/run-cron /etc/cron.daily 

8. 22 00 * * 0 /usr/sbin/run-cron /etc/cron.weekly 

9. 42 00 1 * * /usr/sbin/run-cron /etc/cron.monthly 

10. #30 00 * * * /sbin/shutdown -h now 

11. 00 18 * * * /home/zhangy/database_bak.sh 
1.  [root@BlackGhost etc]# cp /var/spool/cron/root /tmp/root[root@BlackGhost etc]# crontab /tmp/root    //修改文件存放位置
    [root@BlackGhost etc]# crontab -l

## DO NOT EDIT THIS FILE MANUALLY!! USE crontab -e INSTEAD.

# # <minute> <hour> <day> <month> <dow> <command>

 01 * * * *  /usr/sbin/run-cron /etc/cron.hourly
02 00 * * * /usr/sbin/run-cron /etc/cron.daily
22 00 * * 0 /usr/sbin/run-cron /etc/cron.weekly
42 00 1 * * /usr/sbin/run-cron /etc/cron.monthly
#30 00 * * * /sbin/shutdown -h now00 18 * * * /home/zhangy/database_bak.sh
crontab -u,crontab -l,crontab -e,crontab -d

[root@BlackGhost etc]# crontab -l -u zhangy //没有任务
[root@BlackGhost etc]# crontab -e -u zhangy //添加任务
[root@BlackGhost etc]# crontab -l -u zhangy //查看任务
00 18 * * * /home/zhangy/database_bak.sh
[root@BlackGhost etc]# crontab -d -u zhangy //删除任务用户
[root@BlackGhost etc]# crontab -l -u zhangy //用户已删除
no crontab for zhangy
[root@BlackGhost etc]# crontab -e -u zhangy //添加任务
[root@BlackGhost etc]# crontab -l -u zhangy //查看
00 18 * * * /home/zhangy/database_bak.sh

[root@BlackGhost etc]# crontab -l -u zhangy //没有任务[root@BlackGhost etc]# crontab -e -u zhangy //添加任务[root@BlackGhost etc]# crontab -l -u zhangy //查看任务
00 18 * * * /home/zhangy/database_bak.sh
[root@BlackGhost etc]# crontab -d -u zhangy //删除任务用户[root@BlackGhost etc]# crontab -l -u zhangy //用户已删除no crontab for zhangy
[root@BlackGhost etc]# crontab -e -u zhangy //添加任务[root@BlackGhost etc]# crontab -l -u zhangy //查看00 18 * * * /home/zhangy/database_bak.sh

crontab书写規则

第1列 第2列 3 4 5 6

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

crontab书写規则的例子很多,以下从网上找的,偷懒一下,嘿嘿

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每晚的21:30重启lighttpd 。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每周六、周日的1 : 10重启lighttpd 。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每星期六的11 : 00 pm重启lighttpd 。

*/1 * * * /usr/local/etc/rc.d/lighttpd restart

每一小时重启lighttpd

23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

晚上11点到早上7点之间,每隔一小时重启lighttpd

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

每月的4号与每周一到周三的11点重启lighttpd

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

扩展
报错信息 :Failed to start crontab.service.service: Unit crontab.service.service not found

crontab编辑器选择

  1. select-editor
    

    选择vim.basic即可

  2. 在终端输入

    echo export EDITOR=/usr/bin/vim >> ~/.bashrc
    
  3. 终极方法,删除nano编辑器

    sudo apt-get remove nano
    

crontab报错信息

crontab: installing new crontab
"/tmp/crontab.EGUwlF/crontab":23: bad hour
errors in crontab file, can't install.
Do you want to retry the same edit? (y/n) y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值