标签: mac-osx

如何使用 rsync 复制目录树,创建文件的硬链接?

有时,我必须对服务器上的数据文件执行几次大型迁移更改,我正在寻找一种好方法来执行此操作。我正在考虑使用 rsync 从根数据文件夹开始复制我的目录结构,创建指向所有原始文件的硬链接(其中一些文件相当大),并且我可以在目标树中仅覆盖需要迁移的文件。最后,我可以通过两次mv操作安全地从旧文件切换到新文件。

但是,我似乎无法让 rsync 做到这一点。我试过

rsync -a --link-dest=$DATA $DATA $DATA/../upgrade_tmp
Run Code Online (Sandbox Code Playgroud)

但 rsync 不是创建文件的硬链接,而是完全复制它们。使用相同的源和链接目标目录是否有问题?

rsync hardlink mac-osx

28
推荐指数
4
解决办法
2万
查看次数

Mac OS X 更好的“顶部”命令?

topOS X 上的命令非常糟糕。大多数 Linux 发行版中包含的命令允许您使用<和更改排序依据列>,有一个彩色模式(通过按下z键),以及一堆其他有用的选项。

有替换命令行工具吗?理想情况下,我想要htopOS X,但因为它依赖于/proc/文件系统(请参阅此线程),因此尚未移植(并且可能永远不会移植)

显而易见的答案是“活动监视器”,但我正在寻找命令行工具!

monitoring terminal mac-osx

27
推荐指数
5
解决办法
9万
查看次数

在 rsync 或 afpd 中将 UTF-8 NFD 文件名转换为 UTF-8 NFC

我有一个运行 FreeNAS 8 的家庭文件服务器。几天前,我使用 rsync 从 Mac 上传我的整个 iTunes 库,以便我可以通过网络加载我的库,而不是从慢速 USB 驱动器上加载。这基本上有效,现在 iTunes 运行得更好,但我在访问任何包含非 ascii 字符的歌曲时遇到问题(我在加载 Queensrÿche 曲目时第一次注意到这个问题)。这些文件会显示在 Finder 中,但任何访问它们的尝试都会使它们消失,直到我重新连接到服务器。

经过一番研究,我发现这是因为 OSX 使用与 Linux 不同的 UTF 字符顺序。OSX 文件系统使用 Unicode Normalization Form D (NFD),而 linux 使用 Form C (NFC)。Rsync 在执行从我的 mac 到服务器的复制时不会转换这些形式,现在当 iTunes 尝试通过网络访问具有特殊字符的文件时,服务器上的文件的编码错误并且 afpd 报告它们没有存在。

解决这个问题的最佳方法是什么?是否可以在将基本库上传到服务器时让 rsync 执行 unicode 转换?我可以将 afpd 配置为以 NFD 格式传输/接收文件名吗?有没有简单的解决方案来更改服务器上的文件名?我发现了一些关于名为 convmv 的程序的内容,但我不知道是否可以在 FreeNAS 上运行它。

afp rsync mac-osx utf-8 freenas

27
推荐指数
3
解决办法
2万
查看次数

OS X 确定哪个应用程序正在访问硬盘并防止弹出?

我正在运行 OS X 10.6 Server,我想弹出我的外部驱动器,以便我可以进行一些磁盘维护,例如对其进行碎片整理。但是,当我尝试弹出驱动器时,它无法显示磁盘正在使用中。我可以强制弹出它,但这可能会导致损坏...我如何知道哪个应用程序正在使用该驱动器并将其保持打开状态?

hard-drive mac-osx-server mac-osx

26
推荐指数
2
解决办法
3万
查看次数

在 Mac OS X Lion 上解析虚拟主机的速度非常慢

自从升级到 Mac OS X Lion(来自 Snow Leopard)后,我注意到解析到虚拟主机非常慢(大约 3 秒之间)。我找到了一些可能解决此问题的技巧(例如,不使用 .local TLD),但它们不适用于我的设置。

我的设置非常简单: - Apache 2(Lion 附带) - 启用 PHP - 添加了一些虚拟主机 - 安装了 Mail 和 SMTP Pear 包

Apache 的主机文件如下所示:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost
127.0.0.1   tbi.dev
127.0.0.1   www.tbi.dev
127.0.0.1   test1.tbi.dev
127.0.0.1   test2.tbi.dev
127.0.0.1   psa.dev
127.0.0.1   snd.dev
Run Code Online (Sandbox Code Playgroud)

Apache 的虚拟主机文件如下所示:

<VirtualHost *:80>
    DocumentRoot "/Users/Bart/Sites/tbi"
    ServerName tbi.dev
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/Bart/Sites/tbi"
    ServerName tbi.dev
    ServerAlias *.tbi.dev www.tbi.dev
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/Bart/Sites/psa"
    ServerName psa.dev
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/Bart/Sites/sandbox" …
Run Code Online (Sandbox Code Playgroud)

mac-osx virtualhost apache-2.2

25
推荐指数
3
解决办法
2万
查看次数

找不到 MySQL 服务器 PID 文件

我可以很好地启动 MySQL,

/usr/local/mysql/support-files/mysql.server start
Starting MySQL
SUCCESS! 
Run Code Online (Sandbox Code Playgroud)

但是之后的任何 MySQL 操作都会出现错误:

找不到 MySQL 服务器 PID 文件

/usr/local/mysql/support-files/mysql.server stop
ERROR! MySQL server PID file could not be found!
Run Code Online (Sandbox Code Playgroud)

在装有 OSX 10.8 的 Mac 上,我在哪里可以找到服务器 PID 文件?我想知道这是否是权限问题。mysql.sock 文件是一个符号链接,指向 tmp/ 目录中的文件。

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)

mysql mac-osx pid osx-mountain-lion

25
推荐指数
2
解决办法
15万
查看次数

如何在 Mac OS X 上的 shell 脚本中检索绝对文件名?

我想检索当前执行的脚本文件的绝对文件名。链接也应该解决。

在 Linux 上,这似乎是这样完成的:

$(readlink -mn "$0")
Run Code Online (Sandbox Code Playgroud)

readlink似乎工作非常不同的Mac OS X上

我读过这是使用

$(realpath $0)
Run Code Online (Sandbox Code Playgroud)

在 BSD 中,但这也不起作用。Mac OS X 没有realpath.

任何的想法?

shell bash mac-osx

22
推荐指数
2
解决办法
1万
查看次数

如何在 Mac OS 中识别驱动器的文件系统?

我有一个外部驱动器连接到我的 Mac,我正在尝试确定诸如这是 HFS 还是 FAT,它是 32 位还是 64 位等。似乎应该有一些简单的命令这给了我这个信息,但我似乎找不到一个。想法?

filesystems mac-osx

22
推荐指数
3
解决办法
5万
查看次数

OpenSSH 禁用给定主机名的 ControlMaster

我正在使用OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011Mac OS X Snow Leopard。我ControlMaster配置了用于维护持久连接的功能。我~/.ssh/config有以下几点:

Host *
  ControlPath /ms/%r@%h:%p
  ControlMaster auto
  ControlPersist 4h

Host *.unfuddle.com
  ControlMaster no
Run Code Online (Sandbox Code Playgroud)

但是,据我所知 - 即使我尝试将 SSH 用于 unfuddle.com 主机,也总是会创建主连接:

[andrey-mbp ~]$ ssh -v git@droolit.unfuddle.com
OpenSSH_5.9p1、OpenSSL 0.9.8r 2011 年 2 月 8 日
debug1:读取配置数据 /Users/akhkharu/.ssh/config
debug1: /Users/akhkharu/.ssh/config line 1: Applying options for *
debug1:/Users/akhkharu/.ssh/config 第 6 行:为 *.unfuddle.com 应用选项
debug1:读取配置数据 /usr/local/Cellar/openssh/5.9p1/etc/ssh_config
debug1:自动复用:尝试现有的主
debug1:控制套接字“/ms/git@droolit.unfuddle.com:22”不存在
debug1:连接到 droolit.unfuddle.com [174.129.5.196] 端口 22。
debug1:连接建立。
debug1:身份文件 /Users/akhkharu/.ssh/id_rsa 类型 1
debug1:身份文件/Users/akhkharu/.ssh/id_rsa-cert type …

ssh mac-osx

22
推荐指数
3
解决办法
1万
查看次数

时光机在做什么?

有时,OS X 会在很长一段时间内告诉我“正在准备备份...”。所需的时间似乎与要备份的数据量无关。“完成备份...”阶段也是如此。

问题:OS X 在“准备备份...”和“完成备份...”时在做什么?

我知道它正在弄清楚要备份的内容,然后记录更改,但肯定需要的时间应该与更改的数据量成正比。有足够的空间磁盘空间(所以我认为它不会删除旧备份)。如果这有什么不同,我正在使用 TimeCapsule。没有什么问题,我只是好奇。

backup time-machine mac-osx

21
推荐指数
4
解决办法
1万
查看次数