Hi all,

I'm trying to write a dtrace script to print a list of files uploaded via
sftp. I have it working pretty well, except after the script has been running
for a few minutes, I get the "dtrace: processing aborted: Abort due to
systemic unresponsiveness" error.

Is there anything I can use to try to find the source of the error, or is
there something I am missing?

Regards,

Mark

Here's the script so far (ran with dtrace -q -C -s scriptname.d):

#define checkdir "/zones/somezone/root/path/to/uploads"

/* I'm triggering on a fop_open after fop_create (fop_create doesn't always
 * have the file path available, whereas fop_open does), hence the self->icare
 * variable. */

fsinfo::fop_create: /
    arg0
/ {
    self->icare = 1;
}

/* Check to make sure the file was created via sftp, and check that it is in
 * the right dir (the beginning of the path has to match checkdir */
fsinfo::fop_open: /
    self->icare == 1 &&
    execname == "sftp-server" &&
    ((vnode_t *)arg0)->v_path &&
    strstr(((vnode_t *)arg0)->v_path, checkdir)
        ==  ((vnode_t *)arg0)->v_path
/ {
    printf("%s\n", stringof(((vnode_t*)arg0)->v_path));
}

/* If we don't have the right dir, then we need to reset the icare var so we
 * don't check every fop_open from now on */
fsinfo::fop_open: /
    self->icare == 1
/ {
    self->icare = 0;
}

-- 
Mark Harrison
Systems Administrator
OmniTI Computer Consulting, Inc.

Attachment: signature.asc
Description: Digital signature

_______________________________________________
dtrace-discuss mailing list
[email protected]

Reply via email to