mac 设置 launchctl &SCP&path

本文详细介绍了如何在Mac上使用launchctl创建定时任务,包括创建Plist文件、指定启动时间和路径,以及如何在Linux中使用SCP进行无密码文件和目录传输。同时讲解了Mac中设置环境变量PATH的不同方法,包括全局和用户级别配置。
摘要由CSDN通过智能技术生成

launchctl是一个统一的服务管理框架,启动、停止和管理守护进程、应用程序、进程和脚本。下面讲述一下如何在Mac上使用launchctl执行定时任务。

  1. 创建一个Plist
    1. Label:对应的需要保证全局唯一性;
    2. Program:要运行的程序;
    3. ProgramArguments:命令语句
    4. StartCalendarInterval:运行的时间,单个时间点使用dict,多个时间点使用 array
    5. StartInterval:时间间隔,与StartCalendarInterval使用其一,单位为秒
    6. StandardInPath、StandardOutPath、StandardErrorPath:标准的输入输出错误文件,这里建议不要使用 .log 作为后缀,会打不开里面的信息。
    7. 定时启动任务时,如果涉及到网络,但是电脑处于睡眠状态,是执行不了的,这个时候,可以定时的启动屏幕就好了
  2. 将plist 放在对应的位置中
    ~/Library/LaunchAgents 由用户自己定义的任务项
    /Library/LaunchAgents 由管理员为用户定义的任务项
    /Library/LaunchDaemons 由管理员定义的守护进程任务项
    /System/Library/LaunchAgents 由Mac OS X为用户定义的任务项
    /System/Library/LaunchDaemons 由Mac OS X定义的守护进程任务项
    建议放在~/Library/launchAgents 下
  3. 加载命令:
    加载任务, -w选项会将plist文件中无效的key覆盖掉,建议加上
    $ launchctl load -w com.denglibing.checkin.plist

删除任务
$ launchctl unload -w com.denglibing.checkin.plist

查看任务列表, 使用 grep ‘任务部分名字’ 过滤
$ launchctl list | grep ‘com.denglibing’

Linux用scp实现无密码传输文件和目录(使用密钥)
一.SCP简介
SCP(Secure Copy,安全复制)是一个在远程(本地与远程)服务器间安全的进行文件传输的方法。它以SSH协议为基础,使用SSH协议的22端口。

二.SCP无密码传输原理
原理
首先由用户生成一对密钥,然后将公钥保存在SSH服务器用户的目录下.ssh子目录中的authorized_key文件里(/root/.ssh/authorized_key).私钥保存在本地计算机.当用户登陆时,服务器检查authorized_key文件的公钥是否与用户的私钥对应,如果相符则允许登入,否则拒绝.由于私钥只有保存在用户的本地计算机中,因此入侵者就算得到用户口令,也不能登陆到服务器.

实现
将来源服务器A中的密钥文件 “./.ssh/id_rsa.pub"内容, 拷贝到目标服务器B的”./.ssh/authorized_keys",建立信任关系。

场景
在远程拷贝的时候,需要配置scp的 无密码 复制文件和目录。在编写Shell脚本的时候非常有用,你不希望shell脚本在执行过程中因为要检验密码被打断而报权限错误吧。

来源服务器A,IP:192.168.128.132;
目标服务器B,IP:192.168.128.133;
实现:A免密码输入拷贝文件到B。

三.实现过程
在来源服务器A 上执行如下命令来生成配对密钥
切换到ssh目录中,如:cd ~/.ssh;
输入命令:ssh-keygen -t rsa;
下一步输入文件名, 设为空,或者输入如: id_rsa;
下一步Enter same passphrase again,设为:空
可以实现A给B发送文件,进行测试

scp /usr/local/shell/host.txt root@192.168.128.133:/usr/local/host

命令:

复制文件:
1.将本地文件拷贝到远程
scp 文件名 用户名@计算机IP:远程路径
2.从远程将文件拷回本地
scp 用户名@计算机IP:文件名 本地路径

复制目录:
1.将本地目录拷贝到远程
scp -r 目录名 用户名@计算机IP:远程路径
2.从远程将目录拷回本地
scp -r 用户名@计算机IP:目录名本地路径

MAC 设置环境变量path的几种方法

mac 一般使用bash作为默认shell

Mac系统的环境变量,加载顺序为:
/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
当然/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取,如果/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果/.bash_profile文件不存在,才会以此类推读取后面的文件。~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
如果没特殊说明,设置PATH的语法都为:
#中间用冒号隔开

 export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>

(一)全局设置
下面的几个文件设置是全局的,修改时需要root权限

1)/etc/paths (全局建议修改这个文件 )
编辑 paths,将环境变量添加到 paths文件中 ,一行一个路径
Hint:输入环境变量时,不用一个一个地输入,只要拖动文件夹到 Terminal 里就可以了。

2)/etc/profile (建议不修改这个文件 )
全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

3)/etc/bashrc (一般在这个文件中添加系统级环境变量)
全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

4)
1.创建一个文件:
sudo touch /etc/paths.d/mysql
2.用 vim 打开这个文件(如果是以 open -t 的方式打开,则不允许编辑):
sudo vim /etc/paths.d/mysql
3.编辑该文件,键入路径并保存(关闭该 Terminal 窗口并重新打开一个,就能使用 mysql 命令了)
/usr/local/mysql/bin
据说,这样可以自己生成新的文件,不用把变量全都放到 paths 一个文件里,方便管理。

(二)单个用户设置

1)~/.bash_profile (任意一个文件中添加用户级环境变量)
(注:Linux 里面是 .bashrc 而 Mac 是 .bash_profile)
若bash shell是以login方式执行时,才会读取此文件。该文件仅仅执行一次!默认情况下,他设置一些环境变量
设置命令别名alias ll=’ls -la’
设置环境变量:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

2)~/.bashrc 同上

如果想立刻生效,则可执行下面的语句:
$ source 相应的文件
一般环境变量更改后,重启后生效。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值