03-20-2020
Mac OS X Catalina - NFS File Access Behavior in CRON or Launchd
I'm really struggling here, and I think this is a new effect of upgrade to Catalina. I have an automounted NFS directory that contains a file I want to periodically copy to my Mac's local file system. I have a script that does this, and it worked beautifully before Catalina upgrade. If I run the script manually (as root) it's all good. If I run the script as part of a scheduled job it fails. I've tried launching the script in root owned cron job, and I've tried using Launchd. Both fail the same way.
My script:
#!/bin/sh
if [ -f /System/Volumes/Data/nfs/hosts ]
then
cat /etc/hosts.base /System/Volumes/Data/nfs/hosts > /etc/hosts
fi
/System/Volumes/Data/nfs is an NFS share coming off a Synology NAS.
The [ -f ...] part works fine. It can successfully determine if the hosts file exists in the NFS directory. But the cat command fails reading the hosts file. Again, if I run the script manually it all works fine. It only fails if the script is launched from cron or launchd.
File permissions:
brians-mbp:etc root# ls -la /System/Volumes/Data/nfs/hosts
-rwxrwxrwx 1 1024 _lpoperator 2393 Feb 8 14:29 /System/Volumes/Data/nfs/hosts
I've tried fiddling with owner and group, no effect. I've tried different approaches of mounting the NFS drive (automount, fstab, etc), no effect. I've tried different directories, different filenames, etc, no effect. I've tried using different shells in the script (sh, zsh, ...), no effect.
I've tried to find whether Catalina introduced some new ACL mechanisms but can't find anything other than gripes about how Apple changed directory structure in Catalina. But the fact that the script runs just fine if run manually tells me the permissions/ACLs must be ok.
Any ideas?
Brian
7 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
I have set up a samba share on my Linux server. I have a gigabit switch, gigabit NICs in each machine.
I have set up the /etc/samba/smb.conf to support no delay, 8192 send/receive buffers, etc. This helped the rate for Samba go from about 4MB/S to about 10MB/S, but I expect to see about... (1 Reply)
Discussion started by: perspectx
1 Replies
2. AIX
I create a NFS file system. I can read this system from client, however, I cannot write anything in this folder. Why? (1 Reply)
Discussion started by: rainbow_bean
1 Replies
3. Shell Programming and Scripting
Hi
A Ksh script is deployed in a server and executed through cronjob.
If one of the line in the middle of the script fails . Are the remaining lines executed ? (3 Replies)
Discussion started by: Sivaswami
3 Replies
4. Red Hat
Hi,
I am facing issue on NFS.
I have shared /data file file system on Server 192.192.192.1, added below lines in /etc/exports
/data 192.192.192.2(rw,no_root_squash,sync)
the owner of /data directory was test(uid 500)
and same I have mounted on another server 192.192.192.2 where the... (3 Replies)
Discussion started by: manoj.solaris
3 Replies
5. Shell Programming and Scripting
Hello Team,
I am trying to extract date from the following output and trying to compare with current date and if there is 10 minute difference between the two. it should logs message in the file server is started.can anyone help me to implement this in the script? (1 Reply)
Discussion started by: coolguyamy
1 Replies
6. UNIX for Advanced & Expert Users
run_xfs_fsr is a xfs filesystem maintenance script designed to run under cron. The system is a home theater personal computer running mythbuntu 10.10, and is accessed remotely for these tests. cron runs a script, (xfs_fsr.sh) at 02:30 that runs the subject script under BASH and sets the... (3 Replies)
Discussion started by: keepitsimpleeng
3 Replies
7. UNIX for Dummies Questions & Answers
Ok, so I have been struggling with this for a few days and I think I need an explanation of a few things before I go any further. I'm not sure it's possible to do what I'm trying, so before I pull my hair out, here is what I'm doing:
I have written a program in LiveCode that sits on our... (2 Replies)
Discussion started by: nextyoyoma
2 Replies
nfs(7) Miscellaneous Information Manual nfs(7)
NAME
nfs, NFS - network file system
DESCRIPTION
The Network File System (NFS) allows a client node to perform transparent file access over the network. By using NFS, a client node oper-
ates on files residing on a variety of servers and server architectures, and across a variety of operating systems. File access calls on
the client (such as read requests) are converted to NFS protocol requests and sent to the server system over the network. The server
receives the request, performs the actual file system operation, and sends a response back to the client.
NFS operates in a stateless manner using remote procedure calls (RPC) built on top of an external data representation (XDR) protocol. The
RPC protocol enables version and authentication parameters to be exchanged for security over the network.
A server grants access to a specific file system to clients by adding an entry for that file system to the server's file.
A client gains access to that file system using the command to request a file handle for the file system (see mount(1M)). (A file handle
is the means by which NFS identifies remote files.) Once a client mounts the file system, the server issues a file handle to the client
for each file (or directory) the client accesses. If the file is removed on the server side, the file handle becomes stale (dissociated
with a known file), and the server returns an error with set to
A server can also be a client with respect to file systems it has mounted over the network; however, its clients cannot directly access
those file systems. If a client attempts to mount a file system for which the server is an NFS client, the server returns with set to The
client must mount the file system directly from the server on which the file system resides.
The user ID and group ID mappings must be the same between client and server. However, the server maps UID 0 (the superuser) to UID -2
before performing access checks for a client. This process prevents gaining superuser privileges on remote file systems.
RETURN VALUE
Generally, physical disk I/O errors detected at the server are returned to the client for action. If the server is down or inaccessible,
the client receives the message:
where is the hostname of the NFS server. The client continues resending the request until it receives an acknowledgement from the server.
Therefore, the server can crash or power down, and come back up without any special action required by the client. The client process
requesting the I/O will block, but remains sensitive to signals (unless mounted with the option) until the server recovers. However, if
mounted with the option, the client process returns an error instead of waiting indefinitely.
AUTHOR
was developed by Sun Microsystems, Inc.
SEE ALSO
exportfs(1M), share(1M), mount(1M), mount_nfs(1M), nfsd(1M), mount(2), fstab(4), dfstab(4).
nfs(7)