Presentation is loading. Please wait.

Presentation is loading. Please wait.

CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Directories.

Similar presentations


Presentation on theme: "CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Directories."— Presentation transcript:

1 CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Directories

2 CIT 383: Administrative Scripting Topics 1.Directories 2.Inodes 3.File Management 4.Command Line Arguments

3 CIT 383: Administrative Scripting Directories Directory: table of name to inode mappings $ ls –i / 2272929 bin 65409 boot 49057 cdrom 2260 dev 850305 etc 2 home 2371041 initrd 49075 initrd.img 49058 initrd.img.old 948417 lib

4 CIT 383: Administrative Scripting Accessing Directories thisdir = Dir.new(pathname) absolutedir = Dir.new(‘/home/smi/dir1’) relativedir = Dir.new(‘smi/dir1’) currentdir = Dir.new(‘.’) uponedir = Dir.new(‘..’) Methods entries : returns array of filenames each : iterates over each file in directory

5 CIT 383: Administrative Scripting Inodes An inode is a disk structure that contains  Size of the file in bytes.  Device ID that identifies device where file is located.  UID of the file’s owner.  GID of the file’s group.  File mode (permissions.)  Timestamps ctime: inode change time mtime: time file content was last modified atime: time file content was last accessed  Reference count that identifies how many directory entries point to inode.  Pointers to disk blocks containing file data.

6 CIT 383: Administrative Scripting Hard and Symbolic Links A hard link is  A directory entry that points to an inode.  Deleting a file with rm just removes the directory entry.  File data is not removed until all links removed. A symbolic link is  A file that contains a pathname.  Deleting the link does not affect the file.  Deleting a file with rm invalidates the symbolic link but does not remove it from filesystem.

7 CIT 383: Administrative Scripting Basic File Permissions Three sets of permissions: owner, group, world  Each set represented by an octal digit.  Each permission (r,w,x) one bit in octal digit.  Special permissions: setuid, setgid, sticky. ex: chmod 0644 file u: rw, g: r, o: r ex: chmod 0711 bin u: rwx, g: x, o: x 4readsetuid 2writesetgid 1executesticky

8 CIT 383: Administrative Scripting File::Stat The File::Stat class allows access to inodes stat = File::Stat.new(pathname) OR file = File.new(pathname) stat = file.stat Methods size : size of file in bytes uid : UID of file owner gid : GID of file owner mode : file permissions in octal mtime,ctime,atime : file timestamps

9 CIT 383: Administrative Scripting Querying File Attributes directory? – Is file a directory? symlink? – Is file a symbolic link? file? – Is file an ordinary file (not a directory, device, or symlink)? readable? – Is file readable by me? writable? – Is file writable by me? executable? – Is file executable by me? setuid? – Is file setuid? setgid? – Is file setgid? sticky? – Is the sticky bit set?

10 CIT 383: Administrative Scripting File Management The FileUtils class provides methods that emulate the functionality of UNIX commands: chmod chown cp ln mkdir mv rm rmdir

11 CIT 383: Administrative Scripting Command Line Arguments Using command line arguments./test.rb arg1 arg2 arg3 Accessing command line arguments Ruby provides them via the ARGV array: ARGV.each do |arg| puts arg end

12 CIT 383: Administrative ScriptingSlide #12 References 1.Michael Fitzgerald, Learning Ruby, O’Reilly, 2008. 2.David Flanagan and Yukihiro Matsumoto, The Ruby Programming Language, O’Reilly, 2008. 3.Hal Fulton, The Ruby Way, 2 nd edition, Addison- Wesley, 2007. 4.Robert C. Martin, Clean Code, Prentice Hall, 2008. 5.Dave Thomas with Chad Fowler and Andy Hunt, Programming Ruby, 2 nd edition, Pragmatic Programmers, 2005.


Download ppt "CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Directories."

Similar presentations


Ads by Google