ps:
说明:centos 7的systemctl功能感觉越来越多,单独整理一篇文章好了,仅收集资料,自己学习,没有进行学术讨论的水平,见谅。
注意事项目:
 1.整篇几乎很少谈到权限问题,所以有异常不妨检查下权限问题。
 2.中文路径到底会不会出问题,有时候无法预知的,如非必要尽量不用中文路径,我帮朋友编译了5个软件也仅仅遇到一个异常,显示为编码xxx error。
 3.文件名带有下划线,我已经被此问题多次坑过了,windows系统我很喜欢用,而且出现问题,提示都是莫名其妙的,类似于没有参数、未载入之类的,原因我不懂。

一、计划任务

  1. 建立可执行脚本vi /home/log-time.sh #保存如下内容:
1. #!/bin/bash 
cd /home&&mkdir logs 
time_str=$(date +%Y%m%d_%H%M%S)
echo "$time_str" >> logs/"$time_str".log
  1. 测试脚本是否正常运行/home/log-time.sh #执行脚本 ls /home/logs #结果如下:         20171115_201312.logcat /home/logs/20171115_201312.log #结果如下:         20171115_201312
  2. 建立服务vi /usr/lib/systemd/system/mytest.service #保存如下内容:
1. [Unit]
Description=mytest 
[Service]
Type=simple
ExecStart=/home/log_time.sh
  1. 测试服务是否正常运行Systemctl start mytest.service #执行此命令 cat /home/logs/20171115_201312.log #结果如下         20171115_20131220171115_201532
  2. 建立定时器vi /usr/lib/systemd/system/mytest.timer #保存如下内容:
1. [Unit]
Description=mytest
[Timer]
OnCalendar=*-*-* *:*:00 #左往右分别是,年月日 小时分钟秒,当前的设置相当于每分钟执行一次
Unit=mytest.service
[Install]
WantedBy=multi-user.target
  1. 启动设定systemctl start mytest.timer #启动定时器 
6. systemctl enable mytest.timer #开机启动定时器
tail -f /home/logs/20171115_201312.log #有兴趣可以看看,结果就不写了

二、自定义开机启动服务之挂载windows共享

  1. 安装硬盘兼容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)
  2. 共享脚本vi /home/share.sh #保存内容如下:
1. #!/bin/bash
if [ `df | grep share | wc -l` -eq 0 ]; then
mount -t cifs -o rw,username=win帐号,password=win密码,uid=0,gid=0,file_mode=0777 //ip/共享文件夹/   /home/share   #注意空格,如果空格错误,是无法挂载的也可以手动挂载一次看看命令是否可以成功
fi
  1. 建立服务vi /usr/lib/systemd/system/share.service #保存内容如下:
1. [Unit]
Description=share
After=network.target #网络共享当然需要网络先通对不?
#Requires=network.target #根据man描述这个应该靠谱一点,但是实际情况它不行,也许我翻译错了。
[Service]
Type=forking #这个地方也纠结了很久,主要是无法配合网络启动,后面发现改成这样就可以了,图形界面最简单,用ide,不过登录要卡
ExecStart=/home/share.sh
[Install]
WantedBy=multi-user.target
2. 启动设定systemctl enable share.service #后面那个.service可输可不输入。
systemctl start share.service


转载于:https://blog.51cto.com/lxpandyxl/1982224