ps:
说明:centos 7的systemctl功能感觉越来越多,单独整理一篇文章好了,仅收集资料,自己学习,没有进行学术讨论的水平,见谅。注意事项目: 1.整篇几乎很少谈到权限问题,所以有异常不妨检查下权限问题。 2.中文路径到底会不会出问题,有时候无法预知的,如非必要尽量不用中文路径,我帮朋友编译了5个软件也仅仅遇到一个异常,显示为编码xxx error。 3.文件名带有下划线,我已经被此问题多次坑过了,windows系统我很喜欢用,而且出现问题,提示都是莫名其妙的,类似于没有参数、未载入之类的,原因我不懂。一、计划任务
建立可执行脚本
vi /home/log-time.sh #保存如下内容:#!/bin/bash cd /home&&mkdir logs time_str=$(date +%Y%m%d_%H%M%S)echo "$time_str" >> logs/"$time_str".log
测试脚本是否正常运行
/home/log-time.sh #执行脚本ls /home/logs #结果如下:
20171115_201312.log
cat /home/logs/20171115_201312.log #结果如下:
20171115_201312
建立服务
vi /usr/lib/systemd/system/mytest.service #保存如下内容:[Unit]Description=mytest [Service]Type=simpleExecStart=/home/log_time.sh
测试服务是否正常运行
Systemctl start mytest.service #执行此命令cat /home/logs/20171115_201312.log #结果如下
20171115_20131220171115_201532
建立定时器
vi /usr/lib/systemd/system/mytest.timer #保存如下内容:[Unit]Description=mytest[Timer]OnCalendar=*-*-* *:*:00 #左往右分别是,年月日 小时分钟秒,当前的设置相当于每分钟执行一次Unit=mytest.service[Install]WantedBy=multi-user.target
启动设定
systemctl start mytest.timer #启动定时器 systemctl enable mytest.timer #开机启动定时器tail -f /home/logs/20171115_201312.log #有兴趣可以看看,结果就不写了
二、自定义开机启动服务之挂载windows共享
安装硬盘兼容ntfs-3g,建立共享文件夹,根据经验不要使用中文路径,获取uid和gid。
yum install epel* #官方默认源没有ntfs-3g,必须先安装这个,建议这个源为必装源。yum install ntfs-3g #硬盘兼容mkdir /home/share #建立共享文件夹,注意权限id #获取当前帐号的uid和gid避免文件夹可以挂载但是无法操作,自建帐号好像是1000开始,假如是root帐号,结果如下:
uid=0(root) gid=0(root) 组=0(root)
共享脚本
vi /home/share.sh #保存内容如下:#!/bin/bashif [ `df | grep share | wc -l` -eq 0 ]; thenmount -t cifs -o rw,username=win帐号,password=win密码,uid=0,gid=0,file_mode=0777 //ip/共享文件夹/ /home/share #注意空格,如果空格错误,是无法挂载的也可以手动挂载一次看看命令是否可以成功fi
建立服务
vi /usr/lib/systemd/system/share.service #保存内容如下:[Unit]Description=shareAfter=network.target #网络共享当然需要网络先通对不?#Requires=network.target #根据man描述这个应该靠谱一点,但是实际情况它不行,也许我翻译错了。[Service]Type=forking #这个地方也纠结了很久,主要是无法配合网络启动,后面发现改成这样就可以了,图形界面最简单,用ide,不过登录要卡ExecStart=/home/share.sh[Install]WantedBy=multi-user.target
启动设定
systemctl enable share.service #后面那个.service可输可不输入。systemctl start share.service