My First Post      My Facebook Profile      My MeOnShow Profile      W3LC Facebook Page      Learners Consortium Group      Job Portal      Shopping @Yeyhi.com

Pages










Showing posts with label file. Show all posts
Showing posts with label file. Show all posts

Monday, May 4, 2020

Simple Ways to Get the Size of Directories and files in Linux


  • Check Disk Space with the Commands du and df - Linux
  • How to find size of directory in linux
  • How do I get the size of a directory on the command line
  • Linux Check Disk Space Command To View System
  • display the size and other stats of a file/directory or a filesystem.
  • How to Get the Size of a Directory in Linux | Linuxizelinuxize.com › post › system Linux and Unix du command tutorial with examples


To answer these questions, I published an article in 2013. Since then it attained nearly half a million views. After 7 years, i find myself prompted to add some more details on it in relation to latest developments around this. So, please have all your above answers here:


Linux (and Typically all UNIX based or UNIX alike systems including AIX, Solaris, MAC or CentOS) offer two commands for checking out free disk space.


1. Linux "df" command :

Report file system disk space usage. That is, it shows information about the file system on which each FILE resides, or all file systems by default.


Syntax:  df [OPTION]... [FILE]...

Mandatory arguments to long options are mandatory for short options too.

  -a, --all             include dummy file systems
  -B, --block-size=SIZE  use SIZE-byte blocks
  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
  -H, --si              likewise, but use powers of 1000 not 1024
  -i, --inodes          list inode information instead of block usage
  -k                    like --block-size=1K
  -l, --local           limit listing to local file systems
      --no-sync         do not invoke sync before getting usage info (default)
  -P, --portability     use the POSIX output format
      --sync            invoke sync before getting usage info
  -t, --type=TYPE       limit listing to file systems of type TYPE
  -T, --print-type      print file system type
  -x, --exclude-type=TYPE   limit listing to file systems not of type TYPE
  -v                    (ignored)
      --help     display this help and exit
      --version  output version information and exit
SIZE may be (or may be an integer optionally followed by) one of following:
kB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.

EG. I am in a directory. But "df" command has nothing to deal with that. It outputs current OVERALL status of the system and its partitions.


 



2. Linux "du" command :


Estimate file space usage. That is, it summarize disk usage of each FILE, recursively for directories.


Syntax: du [OPTION]... [FILE]...

Mandatory arguments to long options are mandatory for short options too.

  -a, --all             write counts for all files, not just directories
--apparent-size   print apparent sizes, rather than disk usage; although
                          the apparent size is usually smaller, it may be
                          larger due to holes in (`sparse') files, internal
                          fragmentation, indirect blocks, and the like
  -B, --block-size=SIZE  use SIZE-byte blocks
  -b, --bytes           equivalent to `--apparent-size --block-size=1'
  -c, --total           produce a grand total
  -D, --dereference-args  dereference only symlinks that are listed on the
                          command line
      --files0-from=F   summarize disk usage of the NUL-terminated file
                          names specified in file F
  -H                    like --si, but also evokes a warning; will soon
                          change to be equivalent to --dereference-args (-D)
  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
      --si              like -h, but use powers of 1000 not 1024
  -k                    like --block-size=1K
  -l, --count-links     count sizes many times if hard linked
  -m                    like --block-size=1M
  -L, --dereference     dereference all symbolic links
  -P, --no-dereference  don't follow any symbolic links (this is the default)
  -0, --null            end each output line with 0 byte rather than newline
  -S, --separate-dirs   do not include size of subdirectories
  -s, --summarize       display only a total for each argument
  -x, --one-file-system  skip directories on different file systems
  -X FILE, --exclude-from=FILE  Exclude files that match any pattern in FILE.
      --exclude=PATTERN  Exclude files that match PATTERN.
      --max-depth=N     print the total for a directory (or file, with --all)
                          only if it is N or fewer levels below the command
                          line argument;  --max-depth=0 is the same as
                          --summarize
      --time            show time of the last modification of any file in the
                          directory, or any of its subdirectories
      --time=WORD       show time as WORD instead of modification time:
                          atime, access, use, ctime or status
      --time-style=STYLE  show times using style STYLE:
                          full-iso, long-iso, iso, +FORMAT
                          FORMAT is interpreted like `date'
      --help     display this help and exit
      --version  output version information and exit

SIZE may be (or may be an integer optionally followed by) one of following:
kB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.


Eg. I am in a directory. The "du" command tells about that directory. For eg. the following picture directly outputs the total size of that folder.




Just to add more:


Remember 3 important commands when you are sitting on a linux, solaris, AIX, FreeBSD, or Mac Box [Huh, enuff. Just remember Unix :)  ]


1. df

df command can get how much space is occupied and  how much available space.

You can give a device or mount point as an argument, and df report data only for the filesystem physically residing on that device. For example, the following command provides information only for the partition /dev/sda:
$ df /dev/sda
$ df -h /dev/sdc1
$ df /data/


2. du

du is the abbreviation of “disk usage”, this command will progressively into each subdirectory


Also, we can use the du command to look at the file size:

du anwar.txt
Remember, when du reports file sizes in blocks, the size it uses depends on several factors. You can specify which block size it should use on the command line. If you don’t force du to use a particular block size, it follows a set of rules to decide which one to use.

First, it checks the following environment variables:

DU_BLOCK_SIZE
BLOCK_SIZE
BLOCKSIZE
If any of these exist, the block size is set, and du stops checking. If none are set, du defaults to a block size of 1,024 bytes. Unless, that is, an environment variable called POSIXLY_CORRECT is set. If that’s the case, du defaults to a block size of 512 bytes.

So, how do we find out which one is in use? You can check each environment variable to work it out, but there’s a quicker way. Let’s compare the results to the block size the file system uses instead.

To discover the block size the file system uses, we’ll use the tune2fs program. We’ll then use the -l option, pipe the output through grep, and then print lines that contain the word “Block.”

In this example, we’ll look at the file system on the first partition of the first hard drive, sda1, and we’ll need to use sudo:

sudo tune2fs -l /dev/sda1 | grep Block


3. fdisk

fdisk can be used to  manage disk partitions. One can do tasks like create new partition or delete an existing partition



There is yet another tool/ command that you can use:

btrfs fi df /device/ – Show disk space usage information for a btrfs based mount point/file system.



Hope this acts like a quick guide to men and women trying to play with Linux and other UNIX alike systems.

Original post link: https://www.w3lc.com/2013/05/checking-file-system-directory-size-in.html

Cheers :)


Thursday, January 19, 2012

File access problem: PHP htaccess

Once I was asked a question related to File access over the web server.
The question was asked as follows...
"I have built an information maintenance system where files can be uploaded. Anyone can view those files.
But, the problem is when a file is viewed in the browser at that time if someone just copy the URL in some text file after that any body from any where can view that file by just pasting that URL in the browser's address bar.

How to prohibate this thing. PLZZZZZZZZZZZZZZZZZZZ help me...............

its verrrrrrrrrrrrrrrrry serious problem.............."

It was answered by a web expert Mr. Longor (his user id;) )as follows
"There's lots of ways to do this...the one that springs to mind is have a simple referer check at the top of your file-page and if the referer is not coming from your site, then simply redirect the browser to an error page of your choosing.

You can also use .htaccess on linux servers to accomplish this type of thing."


I answered as follows:
"yes neil dear
that was to appen
actually u r asking a questionn of basic security

what u can do is to change the access configurations from .htaccess file

or else use MySql at the back end and save those info in a database (password protected)

This will surely solve the problem!!"


To the answer by previous web expert I replied as follows...
"langsor gave a good solution

Bt basic problem is that the solution posted by him works only if your pages are php. But they may be simple text files also. Because i feel u r using flat files as your database.

so .htaccess solution as adviced by him and me both are correct.

and if in case your pages are php. then well good and fine. go on with the method of longor."


And then the person who asked the question clarified more as follows...
"Sorrrrrrry everyone,

actually i did not clear the problem to you, My files are in ".pdf" format...

Suppose,

http://localhost/information/sample.pdf

can be viewd ....... no login is required to do so..

if I cross the browser and after that in a new browser if I paste this URL then it should not be viewd......."



And then my final answer was
"ya i suppose now u gave correct explanation of ur problem

now only possible things are .htaccess

i need others to speak on this

Anyone to rescue neil of his situation??

easy bit... neil
lets see who solves first"

And guess what..
No one answered after this.
I was personally emailed to tell that the problem was solved by my approach. Gr888!!

The entire thread can be read at http://www.daniweb.com/web-development/php/threads/138376

Thursday, November 3, 2011

error: 452 Error writing:file larger than ulimit set

error: 452 Error writing file: A file cannot be larger than the value set by ulimit

Once I wanted to transfer file from a MAC machine to AIX 64 bit machine. It was an archived file. But after a few seconds of transfer, an abrupt notification of File size exceed was observed. It took me a while, but when the cause was found, I smiled. It was due to a basic setting in Unix based OSes.
The error seen was “Error Writing File : A file cannot be larger than the value set by ulimit”

So here comes the trick of Changing the maximum allowed file size (ulimit)
You cannot create or copy a file that is larger than the limit allowed by ulimit. The profit achieved by this restriction is that it prevents runaway processes from taking up too much disk space.

If you have to work with a file that exceeds the set limit, you must change the default user limit size.
It may be important to note at this point of discussion that the ulimit cannot exceed the values of the SFSZLIM and HFSZLIM tunable parameters.

In addition, do also note that the changed user limit is in effect for the current session only.
1. Use the su command to become root.
2. To view your current limit in blocks, enter:
ulimit -a
3. To set your limit to the new size for the current session, enter:
ulimit [-f] new_size< You can also permanently change your file size limit by setting the new limit in the /etc/profile or the /etc/default/login file. error: 452 Error writing file: A file cannot be larger than the value set by ulimit When trying to transfer a very big file (over ftp for example), you'll receive the error above, this limit is a security limit in AIX and you can solve it by simply editing the /etc/security/limits file and increasing the "fsize" limit or simply changing it to "-1" to be unlimited, and then retry your transfer, you don't have to restart the machine for changes to take effect. This problem have occurred to many as seen over the Internet. Many have reported to see this problem for the first time when they were trying to copy Oracle installer (of size : 1238844 KB) from Windows box to AIX 5.2 box through ftp and it throwed the following The error as already pointed was --" 452 Error writing file: A file cannot be larger than the value >set by ulimit."

Many have reported that they changed the ulimit value to unlimited and then tried copying even after
that the same error was thrown.
Then they changed fsize value in /etc/security/limits file.
Then I tried copying the Oracle installer and it was successful.

It should be remembered here that the problem here is the file system on AIX is JFS (Journalled File
System) and it supports files of size <=2GB. So, if we want to have a file
of size more than 2 GB we need to change the file system to Extended
Journalled File System.

Wish yo all the best,
Anwar

Introduction to Linux FTP command by Anwar Faiz

This post is an introduction to the Linux FTP command. I will discuss in short, the FTP commands, ‘l-variants’, ‘!-variants’, and ‘m-variants’ command in FTP.

To start with, let me tell you that ftp command relates to the File Transfer Protocol. A typical use of the command ftp is for remotely copying, renaming, and deleting files.

For instance:
ftp abc.anwar.edu
This command will attempt to connect to the ftp server at abc.anwar.edu. If it succeeds, it will ask you to log in using a username and password. In case it is a public ftp server, it often allows you to log in using the username "anonymous" and your email address as password. After you are logged in you can get a list of the available ftp commands using the simple help function:
ftp> help
This lists the commands that you can use to show the directory contents, transfer files, and delete files.

Now let us analyze what you can do once you are in FTP command mode. The Shell prompt at this time typically becomes as ftp>.
You can type one of many commands available now to achieve different results.
For instance, ftp> ls
This command prints the names of the files and subdirectories in the current directory on the remote computer.
In a similar way, ftp> cd customers
This command changes the current directory to the subdirecotry "customers", if it exists.
In the same manner, ftp> cd ..
Changes the current directory to the parent direcotry.
Now there can be another variants of these commands too. Because remember now you are in a 2 computer zone. One is your host system from which the ftp command is run. Another is your remote system that has been FTPed here. So for these you can use a prefix ‘l’ befor above command to traverse through the directory structure of the local computer. Obviously ;) local means host system.
For example, ftp> lcd images.
Changes the current directory on the local computer to "images", if it exists.

Now we can directly land into serious discussions. First of any such discussion is about the modes of transfer. There can be two modes of transfer of files. One is ‘ascii’ and another is ‘binary’.
For example, ftp> ascii
Changes to "ascii" mode for transferring text files.
And ftp> binary
Changes to "binary" mode for transferring all files that are not text files.

The next point in discussion is about the transfer of files. After all, it is only for which the FTP command is all about.
So here comes the first one GET command.
Using ftp> get image1.jpg
You can download the file image1.jpg from the remote computer to the local computer.
It is warned that in case there already is a file with the same name it will be overwritten. Obviously you may smile over this warning ;)

And now comes the command for Uploading data, the PUT command
The command ftp> put image2.jpg
Uploads the file image2.jpg from the local computer to the remote computer. Again the same warning of file overwriting if file exists.

Using ‘!’-variant commands in ftp you can achieve results on local computer.
ftp> !ls
A '!' in front will execute the specified command on the local computer. So '!ls' lists the file names and directory names of the current directory on the local computer.

The last of such serious ( please smile again ;) what serious?). Ok. So the last one of such serious discussions would be the ‘m’-variant commands of get and put.
ftp> mget *.jpg
With mget you can download multiple images. This command downloads all files that end with ".jgp".
ftp> mput *.jpg
Uploads all files that end with ".jgp".
ftp> mdelete *.jpg
Deletes all files that end with ".jgp".

The blogpost would remain incomplete if I do not tell about the last point.
ftp> quit
This command exits the ftp program, and lets you return on the normal shell prompt.

With this I end this blogpost. I guess, it is sufficient to begin with and in a typical day to day job. For more details and examples, you may like to visit the website FTP tutorial from About.com. Take care :)

Wednesday, June 22, 2011

Access copy Share files between Host and guest file system in VMware virtual machine

There is definitely ways to achieve the task. It all depends on the choice of the host machine you are using and the guest OS in the VMware. Just keep in mind the following matrix:






HostGuestTool
WinWinwindows file sharing
WinLinuxsamba, ssh
linuxwinsmbmount
linuxlinuxnfs,ftp,telnet

The same above in graphics is

To summarize:
# If Both systems run Windows operating system, you can use Windows file sharing
# If You are connecting from a Linux system to a Windows system, you can use smbmount
# If You are connecting from a Windows system to a Linux system, use Samba
# If Both systems run Linux operating systems, use NFS, FTP and Telnet

For more detailed description you can also visit VMWare official website document on this topic at the following location. Click Here for VMWare Help

In order to share folders between the host operating system and the guest operating system you can use VMWare settings. Go to VM->Settings->options

The same is shown in the adjacent snapshot.
Added notes in July 2012 :-- VMware Workstation 4 Features | Documentation | Knowledge Base | Discussion Forums Prev Contents Last Next Using Shared Folders With shared folders, you can easily share files among virtual machines and the host computer. To use shared folders, you must have the current version of VMware Tools installed in the guest operating system and you must use the Virtual Machine Control Panel to specify which directories are to be shared. You can use shared folders with virtual machines running the following guest operating systems: Windows Server 2003 Windows XP Windows 2000 Windows NT 4.0 Linux with a kernel version of 2.4 or higher To set up one or more shared folders for a virtual machine, be sure the virtual machine is open in Workstation and click its tab to make it the active virtual machine. Go to Edit > Virtual Machine Settings > Options and click Shared folders. You can add one or more directories to the list. Those directories may be on the host computer or they may be network directories accessible from the host computer. In a Windows virtual machine, shared folders appear in My Network Places (Network Neighborhood in a Windows NT virtual machine) under VMware Shared Folders. For example, if you specify the name Test files for one of your shared folders, you can navigate to it by opening My Network Places > VMware Shared Folders > .host > Shared Folders > Test files. You can also go directly to the folder using the UNC path \\.host\Shared Folders\Test files. You can map a shared folder to a drive letter just as you would with a network share. Note: To see shared folders displayed in this way, you must update VMware Tools in the virtual machine to the current version. If your guest operating system has the version of VMware Tools that shipped with VMware Workstation 4.0, shared folders appear as folders on a designated drive letter. In a Linux virtual machine, shared folders appear under /mnt/hgfs. So the shared folder in this example would appear as /mnt/hgfs/Test files.

Vmware and sharing rocks!!